{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410 {\fonttbl\f0\fswiss\fcharset77 Helvetica;} {\colortbl;\red255\green255\blue255;} \margl1440\margr1440\vieww18820\viewh21860\viewkind0 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural \f0\fs24 \cf0 Rackable Systems, Inc.\ SPEC CPU2000 Compiler flag descriptions for:\ \ Intel C/C++ and Fortran Compilers 9.1\ \ ------------------------------------------------------\ General Options (C/C++/FORTRAN)\ ------------------------------------------------------\ \ -fast This option maximizes speed across the entire program by\ including the following Options\ \ -O3 -ipo -no-prec-div -static -xP\ \ -O\{1|2|3\} Optimization-level options:\ 1: optimize for speed, but disable some optimizations which\ increase code size for a small speed benefit. Includes\ inline expansion for intrinsic functions, global\ optimizations, string pooling optimizations.\ 2: This is the default level of optimization.\ Optimizes for speed. The -O2 option includes O1 \ optimizations and in addition enables inlining of \ intrinsics and more speed optimizations.\ 3: Builds on -01 and -02 optimizations by enabling high-level \ optimization. This level does not guarantee higher performance \ unless loop and memory access transformation take place. In \ conjunction with -QaxK/-QxK and QaxW/QxW, this switch causes\ the compiler to perform more aggressive data dependency \ analysis than for -O2. This may result in longer compilation \ times.\ \ -Oa[-] Assume [do not assume] no aliasing in program.\ \ -align\ This option tells the compiler to analyze and reorder memory layout for variables \ and arrays. It sets the alignment for objects of type long long, double, and \ long double to values more suited to best performance. If you are not interacting \ with system libraries or other libraries that are compiled without -align, this option \ can improve performance by reducing misaligned accesses.\ \ \ -ansi_alias\ Enable/disable use of ANSI aliasing rules in\ optimizations; user asserts that the program adheres to\ these rules. The default for C++ is -Qansi_alias-\ which is that aliasing rules are not assumed. The default for\ the Fortran compiler is -Qansi_alias. For C++, the -Qansi_alias\ flag will enable optimizations that would otherwise be\ prevented by potential aliasing.\ \ -auto_ilp32\ Instructs the compiler to analyze the program to determine if there are \ 64-bit pointers which can be safely shrunk into 32-bit pointers.\ \ \ -ipo Multi-file ip optimizations that includes:\ - inline function expansion\ - interprocedural constant propogation\ - dead code elimination\ - propagation of function characteristics\ - passing arguments in registers\ - loop-invariant code motion\ \ -msse3\ Generates code for Intel Pentium 4 processors with Streaming SIMD \ Extensions 3 (SSE3).\ \ \ -no-prec-div[-]\ Enables optimizations that give slightly less precise results than full IEEE division.\ \ -prof_gen\ Instrument program for profiling for the first phase of \ two-phase profile guided optimization.\ \ -prof_use\ Instructs the compiler to produce a profile-optimized \ executable and merges available dynamic information (.dyn) \ files into a pgopti.dpi file. If you perform multiple \ executions of the instrumented program, -Qprof_use merges \ the dynamic information files again and overwrites the \ previous pgopti.dpi file. Without any other options,\ the current directory is searched for .dyn files.\ \ -static\ This option prevents linking with shared libraries. It causes the executable \ to link all libraries statically.\ \ \ -x\ Generate specialized code for processor specified by \ while also generating generic code.\ \ includes one or more of the following:\ \ K: Intel Pentium III or copmatible Intel processors (SSE)\ W: Intel Pentium 4 and compatible Intel processors (SSE2)\ N: Intel Pentium 4 and compatible Intel processors (SSE2)\ Enables new optimizations in addition to Intel processor-specific\ optimizations.\ P: Intel Pentium 4 processors and compatible Intel processors with SSE3\ B Intel Pentium M and compatible Intel processors (SSE2)\ \ SSE is Streamng SIMD Extensions\ \ Additional Notes on N and P:\ ------------------------------------\ The N and P options target your program to run on Intel Pentium 4\ and compatible Intel processors. The resulting code might\ contain unconditional use of features that are not supported\ on other processors. Programs, where the function main() is\ compiled with this option, will detect non compatible processors\ and generate an error message during execution. This option\ also enables new optimizations in addition to Intel processor\ specific optimizations.\ These options also enable advanced data layout and code restructuring\ optimizations to improve memory accesses for Intel processors. \ \ ------------------------------------------------------\ Flags Specific to FORTRAN\ ------------------------------------------------------\ \ -align all \ Instructs compiler to align data items by adding padding bytes\ wherever possible to obtain the natural alignment of data items\ in common blocks, derived types, and record structures.\ \ ------------------------------------------------------\ General Options\ ------------------------------------------------------\ +FDO PASS1=-prof_gen PASS2=-prof_use\ \ Using feedback-directed optimization, a profile is generated \ on the first pass of compilation and used on the second pass.\ \ \ \ ------------------------------------------------------\ Benchmark-Specific Portability Options\ ------------------------------------------------------\ \ -DLINUX_i386\ Linux Intel system, use "long long" as 64bit variable. \ -DHAS_ERRLIST \ Tells that the system provides the "sys_nerr" and "sys_errlist[]" variables\ -DSPEC_CPU2000_LINUX_I386\ Enable the code changes for porting to Linux on i386 architecture to be utilized\ -DSPEC_CPU2000_NEED_BOOL\ Use SPEC provided definition of the boolean type\ -DSPEC_CPU2000_LP64\ Compile using LP64 programming model. \ -DSYS_IS_USG\ Tells that the operating system is USG compliant\ -DSYS_HAS_SIGNAL_PROTO\ Do not explicitly #include \ -DSYS_HAS_IOCTL_PROTO\ Do not explicitly declare ioctl().\ -DSYS_HAS_ANSI\ System is ANSI compliant.\ -DSYS_HAS_CALLOC_PROTO\ Do not explicitly declare calloc().\ -DSYS_HAS_TIME_PROTO\ Do not explicitly declare time().\ -FI \ : Fixed-format F90 source code. \ \ \ taskset Utility\ ---------------\ NAME\ taskset - retrieve or set a processes's CPU affinity\ \ SYNOPSIS\ taskset [options] [mask | list ] [pid | command\ [arg]...]\ \ DESCRIPTION\ taskset is used to set or retrieve the CPU affinity of\ a running process given its PID or to launch a new COM-\ MAND with a given CPU affinity. CPU affinity is a\ scheduler property that "bonds" a process to a given\ set of CPUs on the system. The Linux scheduler will\ honor the given CPU affinity and the process will not\ run on any other CPUs. Note that the Linux scheduler\ also supports natural CPU affinity: the scheduler\ attempts to keep processes on the same CPU as long as\ practical for performance reasons. Therefore, forcing\ a specific CPU affinity is useful only in certain\ applications.\ \ The CPU affinity is represented as a bitmask, with the\ lowest order bit corresponding to the first logical CPU\ and the highest order bit corresponding to the last\ logical CPU. Not all CPUs may exist on a given system\ but a mask may specify more CPUs than are present. A\ retrieved mask will reflect only the bits that corre-\ spond to CPUs physically on the system. If an invalid\ mask is given (i.e., one that corresponds to no valid\ CPUs on the current system) an error is returned. The\ masks are typically given in hexadecimal. For example,\ \ 0x00000001\ is processor #0\ \ 0x00000003\ is processors #0 and #1\ \ 0xFFFFFFFF\ is all processors (#0 through #31)\ \ When taskset returns, it is guaranteed that the given\ program has been scheduled to a legal CPU.\ \ OPTIONS\ -c, --cpu-list\ specifiy a numerical list of processors instead\ of a bitmask. The list may contain multiple\ items, separated by comma, and ranges. For\ example, 0,5,7,9-11.\ \ \ }