NREL Flag Disclosure for IBM SP SPEC HPC2002 Last Revised 12 November, 2002 Source Level Options ================================ -D_OPENMP Use OpenMP sections -DSPEC_HPG_MPI_INT4 (371.chem_m, 370.chem_s) Define 4 byte integers for use with standard MPI library -DSP2_TIME (371.chem_m, 370.chem_s) Define use of etime equivolent clock -DSPEC_HPG_MPI (351.seis_m, 350.seis_s) Use MPI Sections Compiler Invocation =================== cc Invokes the compiler for C source files with a default language of extended and specifies that it provide compatibility with older IBM compilers and allow placement of string literals or constant values in read/write storage. cc does not conform to the ISO/ANSI C standard. cc_r The same as "cc" except that it generates a threadsafe executable, compliant with the POSIX pthreads API. mpcc The same as "cc" except that it includes MPI headers and links to MPI library mpcc_r The same as "cc_r" except that it includes MPI headers and links to MPI library xlf90 Invokes the compiler for Fortran source files with a default language of Fortran 90. xlf90_r The same as "xlf90" except that it generates a threadsafe executable, compliant with the POSIX pthreads API. mpxlf90 The same as "xlf90" except that it includes MPI headers and links to MPI library mpxlf90_r The same as "xlf90_r" except that it includes MPI headers and links to MPI library Compiler Options ================ -O Performs optimizations that the compiler developers considered the best combination for compilation speed and runtime performance. -O3 Perform some memory and compile time intensive optimizations in addition to those executed with -O. The -O3 specific optimizations have the potential to slightly alter the semantics of a user's program. Optimizations may include, but are not limited to: Aggressive code motion, and scheduling on computations that have the potential to raise an exception; Relaxed conformance to IEEE rules in cases where the difference in the results is not important to an application; Rewriting of floating point expressions. -q64 Selects 64-bit compiler mode. -qarch=pwr3 Produces object code containing instructions that will run on power3 processors. -qfixed Indicates that the input source program is in fixed form. Allows fixed format Fortran 77 programs to be compiled using the xlf90 compiler invocation. -qintsize=8 Use 8 byte integers by default for integer and logical variables. -qmaxmem=-1 Allows the compiler to use as much memory as it needs to execute. -qsmp=omp Enable OpenMP parallelization directives. -qstrict Turns off optimizations that have the potential to alter the semantics of a program. -qsuffix=f=f90 Sets the suffix for source files to be .f90. The .f90 suffix is required by xlf90 to compile Fortran 90 programs. -qtune=pwr3 Instruction selection, scheduling, and other implementation dependent performance enhancements for the Power3 processor. Linker Options ============== -Ldir Link looks in the directory that is specified by the option "dir". -lnetCDF Link the netCDF freeware library -bmaxdata:0x........ Sets the maximum combined size of the program's stack- and data- segments to this number of byes, specified in hexadecimal, when the default is too small. -bmaxstack:0x........ Sets the maximum size of the program's stack segment to this number of byes, specified in hexadecimal, when the default is too small. AIX Environment Variables: ========================== OMP_DYNAMIC=FALSE Disables dynamic adjustment of the number of available threads. OMP_NUM_THREADS=... The exact number of threads available to be used, or if OMP_DYNAMIC is TRUE, the upper limit on the number of available threads. XLFRTEOPTS=NAMELIST=OLD Allows a newly compiled program to read the namelist from a binary compiled with the older namelist format. XLSMPOPTS A list of runtime settings affecting SMP execution. Here are some of the possibilities: SCHEDULE:STATIC Work is scheduled to threads round-robin. SPINS:0 Allows work-requests to spin indefinitely without the thread having to yield the time-slice. STACK=.... Specifies the largest allowable size of a thread's stack. YIELDS:0 Allows the thread to yield an indefinite number of times without being driven into a sleep state. POE (Parallel Operating Environment): ===================================== poe Invokes the Parallel Operating Environment (POE) for loading and executing programs on remote processor nodes. MP_HOSTFILE Determines the name of a host list file for node allocation. MP_PROCS Determines the number of program tasks.