Purdue Flag Disclosure for IBM p690 Regatta SPEC HPC2002 Last Revised 09 Nov, 2004 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 equivalent 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 thread safe executable, compliant with the POSIX pthreads API. xlc_r This invokes the thread safe version of xlc 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 thread safe 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. -O4 Aggressively optimizes the source program, trading off additional compile time for potential improvements in the generated code. This option implies the following options: -qarch=auto -qcache=auto -qhot -qipa -qtune=auto -O3. -qhot Determines whether or not to perform high-order transformations on loops during optimization. -qipa Enhances -O optimization by doing detailed analysis across procedures. One of -O, -O2, or -O3 is required when using -qipa. -qarch=auto Specifies what types of RISC systems the application program may be executed on. Automatically detects the specific architecture of the compiling machine. It assumes that the execution environment will be the same as the compilation environment. -qcache=auto Automatically detects the specific cache configuration of the compiling machine. It assumes that the execution environment will be the same as the compilation environment. -qtune=auto Specifies the architecture on which the executable program is optimized. Automatically detects the specific processor type of the compiling machine -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=pwr4 Produces an object that contains instructions that run on the POWER4 hardware platforms. -qtune=pwr4 Produces an object optimized for the POWER4 hardware platforms. -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. -NSbytes SPILLSIZE(bytes) Specifies the size of internal program storage areas. It defines the number of bytes of stack space to reserve in each subprogram, in case there are too many variables to hold in registers and the program needs temporary storage for register contents. 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.