Purdue University Flag Disclosure for Intel + Linux SPEC HPC2002 June 29, 2005 ------------------------------------------------------------------------------ Description of compiler flags for Intel Fortran and C++ Compiler 8.0 for Linux -O1 Optimize to favor code size and code locality Disables loop unrolling -O2 Optimize for code speed (default) -O3 Enables -O2 and in addition performs aggressive optimizations such as loop and memory access transformation -O0 Disable optimizations -O Same as -O2 -Ob Control inline expansion: n=0 -- Disables inlining n=1 -- Inline functions declared with __inline keyword, and perform inlining as per C++ language n=2 -- Inline any function, at the compiler's discretion (same as -ip) -fast Enhance speed across the entire program -tpp n=7,Optimizes for the Intel Pentium4/Xeon processors (default) -tune pn4 Optimizes for the Intel Pentium4 processors (default) -march= Generate code exclusively for a given cpu (cpu=pentium4) -mcpu= Optimize for a specific cpu (cpu=pentium4) -mp Maintain floating-point precision -i8 Makes default variables and logical variables 8 bytes long -fp_port Rounds floating point results after floating-point operations -ax

p denotes the processor types, p=N, W generates code for Intel Pentium 4 processors -ftz Enables floating point underflow results set to zero (default) -ip Enables single-file interprocedural optimizations -ipo Enables multifile IP optimizations (between files) -ip_no_inlining Disable IP inlining (requires -ip or -ipo) -unroll Set heuristically the maximum number of times to unroll loops (default) -unroll0 Disable loop unrolling -openmp To generate multithreaded code based on OpenMP directives -parallel Enables auto-parallelizer to generate multithreaded code -prof_use Enables use of profiling information during optimization -x

p denotes the processor types, p=N, W generates code for Intel Pentium 4 processors -falias Assume aliasing (default) -fno-alias Assume no aliasing -ffnalias Assume aliasing within functions (default) -fno-fnalias Assume no aliasing within functions,but assume aliasing across calls -pad Enable changing variable and array memory layout (default) -nopad Disable changing variable and array memory layout -w Disable all warnings -Wall Enable all warnings -Wn Disable warnings (n=0) or show warnings (n=1, default) -E Preprocess to stdout -o Specify output file -nus Do not append an underscore to external subroutine names -nus[,] Do not append an underscore to subroutine names listed in -u Sets variables to IMPLICIT NONE (default). Same as specifying -implicitnone option -zero Implicitly initialize all data to zero -lowercase Change routine names to all lowercase (default) -uppercase Change routine names to all uppercase -auto Make all local variables AUTOMATIC -auto_scalar Make scalar local variables AUTOMATIC (default) -save Save all variables (static allocation) -D[=] Define macro -U Removes the predefined macro -I

Add directory to include file search path -L Instruct linker to search for libraries -Vaxlib Link with portability library -static Prevents linking with shared libraries -shared Produce a shared object -g Produce symbolic debug information in object file -inline_debug_info Preserve the source position of inlined code instead of assigning the call-site source position to inlined code -V Display compiler version information -help Prints list of compiler options ------------------------------------------------------------------------------------------------------------- Description of flags used with PBS - qsub command -I Interactive run -q queue name -l Specify resources (nodes - number of nodes:ppn - processors per node,walltime - time for which resources are needed) ------------------------------------------------------------------------------------------------------------- Description of flags used with mpirun command -np Specify number of processors to use for the run -hostfile Specify the name of the PBS node file that has the hostnames where the job has to run