NCEP CCS Conversion Guide
Snow/Frost Compiler Setup
Back to Main Page

New Default Compilers at NCEP

By default your codes will be compiled with thread-safe libraries.  This means when you specify xlf on frost/snow you will be using the equivalent of xlf_r on the asp/bsp.  When you specify mpxlf you will be using mpxlf_r.  The xlf and mpxlf are therefore the same as xlf_r and mpxlf_r on frost/snow.  This default was put in place because every executable running under the new gang scheduler on frost/snow must be compiled with thread-safe libraries for the scheduler to work.


New Default Compiler Options at NCEP
 
-q64 By default, all executables will use 64-bit memory addressing.  Specify -q32 to override and generate a 32-bit memory addressed executable.  Specify -q64 has nothing to do with the size of REALs or INTEGERs.  Remove all references to -bmaxdata and -bmaxstack in your makefiles as they should no longer be needed.
-qarch=auto The POWER4 architecture is targeted.  Previously on the asp/bsp the default architecture targeted was the common RS6000 architecture.  To replicate this common targeted architecture and override the -qarch=auto default just specify -qarch=com.  There may be cases where incorrected coded programs will produce different results between the two targeted architectures due to floating point truncation/rounding differences.  To determine if this is the case try compiling and executing under both targeted architectures.  Also, an executable built for a POWER4 architecture will not run on a POWER3 or 604e architecture but a POWER3 executable will run on a POWER4.  Upwards but not backward compatible.
-O This specifies the lowest level of code optimization.  To override this default specifu -0,-O3,-O4,-O5 as you see fit.
-g Generates symbol table for interactive debugger.

To see a full listing of all the compiler defaults for each compiler look at the file /etc/xlf.cfg or turn on verbose logging in your compile.
 

Compiler Options Available for Source Listing
 
-qsource -qxref=full -qttr=full This  creates *.lst files with full cross-reference and variable attribute list.

Compiler Options Available for Performance
 
-O The default (local NCEP modification)
-O3 The next higher level of optimization
-O4 Implies -O3 -qhot -qipa -qessl
-qhot is aggressive transformations
-qipa is interprocedural analysis
-qessl uses ESSL in place of Fortran intrinsics
-O5 implies -O4 -qipa=level=2
-O0 will turn off code optimization
-qstrict will restrict aggressive rearrangement of instructions

Compiler Options Available for Debugging
 
-qcheck This performs array bounds checking
-qextchk This performs type checking across common and calls
-qflttrap=ovr:und:zero:inv:en -qsigtrap This traps floating point exceptions.  To minimize the performance impact add "imp" to the -qflttrap option.

 
Back to Main Page