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 |