| 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 |