Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Dec 1998 09:22:09 -0800 (PST)
From:      Steve Kargl <sgk@troutmask.apl.washington.edu>
To:        bdodson@beowulf.utmb.edu (M. L. Dodson)
Cc:        mike@smith.net.au, hackers@FreeBSD.ORG
Subject:   Re: sysinstall
Message-ID:  <199812151722.JAA67152@troutmask.apl.washington.edu>
In-Reply-To: <199812151507.JAA27744@beowulf.utmb.edu> from "M. L. Dodson" at "Dec 15, 1998  9: 7:18 am"

next in thread | previous in thread | raw e-mail | index | archive | help
According to M. L. Dodson:
> Mike Smith writes:
>>> If I might, I would like to suggest that any project along this
>>> line look to include g77 as well as C++ as part of the base
>>> system.  This would help those of us interested in using FBSD for
>>> number crunching.  I can generate some testing time, including
>>> compiling and testing some pretty hefty computational chemistry
>> 
>> Can you clarify for us why having g77 in the base system, rather than 
>> an easily-installable and easily-upgradeable port would be worthwhile?  

  f77 = stock f2c+gcc
  g77 = from egcs-1.1.1 port
pgf77 = Portland Group Fortran compilers for linux

The compiled program computes the acoustical scattering from
an elastic spherical shell using standard partial wave analysis. 

  f77 -O0    43.82 seconds
  g77 -O0    36.14
pgf77 -O0    19.68

  f77 -O1    26.35       
  g77 -O1    15.12       
pgf77 -O1    17.57       

  f77 -O2    22.78       
  g77 -O2    14.94       
pgf77 -O2    16.16       

  f77 -O3    22.96       
  g77 -O3    14.87       
pgf77 -O3    15.85       

  f77 -O3                22.97 (f2c+gcc does not honor a PPro flag)
  g77 -O3 -mpentiumpro   14.84
pgf77 -O3 -tp p6         15.83

>> Our current drive is to increase, not decrease, the modularity of the 
>> system where possible; an addition like this would have to have a 
>> compelling justification that was key to the system's functionality to 
>> be considered.

g77 can be run in a manner that is fairly strict to the deprecated
Fortran 77 standard.  There are, however, well documented extensions
in g77 that move g77 towards a standard conforming Fortran 90/95 compiler.
g77 includes libU77 which permits a Fortran program to access the
environment (e.g., getargs(), time(), date(), secnds(), subroutines).

> I'm absolutely sympathetic with a desire for modularity.  The
> problem is specific to g77 (and, possibly, to other of the
> optional gnu compilers).  You can't just install g77; you have to
> take, at least, a custom version of gcc along with it.  That
> means that you have to juggle your path in order to pick up the
> correct versions of everything.  Let me point out that people
> using this compiler are not likely to be as knowledgable as your
> ordinary "hackers" subscriber.  I have had success getting things
> done in spite of this behavior, but it is a royal PITA.  Not to
> mention the possible differences in code generation between the
> system gcc and the g77-specific gcc.  I have no way of judging
> whether that might or might not be a general source of
> difficulty.  I do have experience with the behavior of the
> regression tests accompanying some number crunching packages
> being dependent on the compiler optimization level chosen, in
> some quite unexpected ways.  This is really important to us.  A
> 5% speedup means something when a run is 2 weeks long.  This is
> one of the PsITA I would like to avoid.

Install the egcs-1.1.1 port and place /usr/local/bin in front
of /usr/bin in our path.  g77 will always use the right gcc 
and libraries.  (Sorry for the long lines below)

troutmask:kargl[207] g77 -v shell.f
g77 version egcs-2.91.60 19981201 (egcs-1.1.1 release) (from FSF-g77 version 0.5.24-19980804)
Driving: g77 -v shell.f -lg2c -lm
Reading specs from /usr/local/lib/gcc-lib/i386-unknown-freebsdelf/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
 /usr/local/lib/gcc-lib/i386-unknown-freebsdelf/egcs-2.91.60/f771 shell.f -quiet -dumpbase shell.f -version -fversion -o /var/tmp/ccKPWs36.s
GNU F77 version egcs-2.91.60 19981201 (egcs-1.1.1 release) (i386-unknown-freebsdelf) compiled by GNU C version egcs-2.91.60 19981201 (egcs-1.1.1 release).
GNU Fortran Front End version 0.5.24-19980804
 as -V -Qy -o /var/tmp/ccXhhSXa.o /var/tmp/ccKPWs36.s
GNU assembler version 2.9.1 (i386-unknown-freebsdelf), using BFD version 2.9.1
 /usr/local/lib/gcc-lib/i386-unknown-freebsdelf/egcs-2.91.60/collect2 -m elf_i386 -dynamic-linker /usr/libexec/ld-elf.so.1 /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/local/lib/gcc-lib/i386-unknown-freebsdelf/egcs-2.91.60 -L/usr/local/i386-unknown-freebsdelf/lib -L/usr/local/lib /var/tmp/ccXhhSXa.o -lg2c -lm -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o


-- 
Steve

finger kargl@troutmask.apl.washington.edu
http://troutmask.apl.washington.edu/~clesceri/kargl.html

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812151722.JAA67152>