[daip] Preliminary report on Portland Group Compiler

Patrick P. Murphy pmurphy at NRAO.EDU
Mon Feb 12 14:10:49 EST 2001


Bill Cotton has kindly donated his time in trying to fashion a Linux port
of AIPS to the pgf77 compiler.  Progress was made, and some of our
questions have been answered, but the result thus far is disappointing.
Here's a quick rundown:

  *  Debugger: one can indeed examine variables in common blocks, but Bill
     found the combination of no readline-like command line editing and
     the different and less flexible syntax of pgdbg (vs. gdb) to be
     sufficiently annoying as to mostly cancel any gain.

  *  ZTPWAD: we cloned the HP version, adding:
       C                                       LINUX/PGI fortran reports two
       C                                       errors, depending on mode.
             DATA EOFERR /252/,
            *     EOFER2 /253/
     as the two end-of-file compiler specific error codes.

  *  Fortran Compile options:
      COMPILER=/usr/pgi/linux86/bin/pgf77
      COMPSWIT="-c -Mdclchk -Msave -Mnorecursive -Minfo=all -Mstandard"
        OPT0="-Ktrap=fp -g" 
        OPT1="-O0"
        OPT2="-O1 -mp -fast"
        OPT3="-O2 -mp -fast -Mconcur -Munroll -Mvect=sse"
        OPT4=$OPT3 ; OPT5=$OPT4 ; OPT6=$OPT5
        OPT7=$OPT6 ; OPT8=$OPT7 ; OPT9=$OPT8
        NOOPT=$OPT0
        DEBUG="$DEBUG -g"
     (The "-g" on OPT0 was apparently dictated by the debugger, which
      required *every* module in a binary to be compiled debug before
      pgdbg would operate on it).

  *  C Compile options: COMPILER="/usr/pgi/linux86/bin/pgcc"
                        DEBUG="-g"
                        OPT0="-O3 "
     COMP="-c -O3 -Mstandard -Munroll -I$INC -DHAVE_LINUX_GLIBC"

  *  Link options: COMPILER="/usr/pgi/linux86/bin/pgf77 -mp"
                   DEBUG="-g -Ktrap=fp"
                   OPT0=" -g"
                   OPT1=""
                   OPT2="-mp -fast"
                   OPT3="-mp -fast -Mconcur -Munroll -Mvect=sse"
     (See Fortran above for -g justification on OPT0).

  *  The DDT suite was chugging along nicely, until it got to MX where it
     died horribly.  Bill started to track down where the problem was.  It
     goes away when one compiles everything in debug mode.  At first it
     seemed like it might be a Q routine (QPUT specifically) but now it
     seems that the problem lies in something it calls.

  *  Bill didn't think it was useful to get any timing results with an
     AIPS built completely with -g.

He basically ran out of time so once again this compiler is (literally) on
my desk.  If anyone wants to have at it, everything is on vulcan, in the
/export/users/aips/bcotton/AIPS/ directory so (for bash users):

    bash$ slogin vulcan
    ...
    vulcan$ cd /export/users/aips/bcotton/AIPS/
    vulcan$ . /home/aips/31DEC01/SYSTEM/UNIX/UNAIPS.SH
    vulcan$ . ./LOGIN.SH; $CDTST
    AIPS_VERSION=/export/users/aips/bcotton/AIPS/31DEC01
    vulcan$ 

You can do this as aipsmgr, as that account is already set up to use the
compiler.

I seriously doubt I'll have much time for this side project in the near
future.  If someone does want to take it on, let me know and keep the rest
of us AIPs informed.  Thanks.

				- Pat



More information about the Daip mailing list