SPEC CPU2006 Flag Description for the Intel(R) C++ and Fortran Compiler 11.0 for IA32 and Intel 64 applications

Copyright © 2006 Intel Corporation. All Rights Reserved.

System and Other Tuning Information

One or more of the following settings may have been set. If so, the corresponding notes sections of the report will say so; and you can read below to find out more about what these settings mean.

Environment Variables

OMP_NUM_THREADS

This Environment Variable sets the maximum number of threads to use for OpenMP* parallel regions if no other value is specified in the application. This environment variable applies to both -openmp and -parallel (Linux and Mac OS X) or /Qopenmp and /Qparallel (Windows). Example syntax on a Linux system with 8 cores:
export OMP_NUM_THREADS=8
Default is the number of cores visible to the OS.

KMP_STACKSIZE

This Environment Variable specifies the stack size to be allocated for each thread.

KMP_AFFINITY = < physical | logical >,starting-core-id

This Environment Variable specifies the static mapping of user threads to physical cores, for example, if you have a system configured with 8 cores, OMP_NUM_THREADS=8 and KMP_AFFINITY=physical,2. Thread 0 will mapped to core 2, thread 1 will be mapped to core 3, and so on in a round-robin fashion.

BIOS Settings

Hardware Prefetch:

This BIOS option allows the enabling/disabling of a processor mechanism to prefetch data into the cache according to a pattern-recognition algorithm.

In some cases, setting this option to Disabled may improve performance. Users should only disable this option after performing application benchmarking to verify improved performance in their environment.

Adjacent Sector Prefetch:

This BIOS option allows the enabling/disabling of a processor mechanism to fetch the adjacent cache line within an 128-byte sector that contains the data needed due to a cache line miss.

In some cases, setting this option to Disabled may improve performance. Users should only disable this option after performing application benchmarking to verify improved performance in their environment.

Snoop Filter Enabled/Disabled:

The Snoop Filter is designed to reduce system bus utilization coming from cache misses. On the Intel 5000X and 5400 chipset, it is built as a cache structure able to minimize unnecessary snoop traffic.
When enabled, it can lead to significant memory performance improvements for several workstation applications on suitable memory configurations.

Enhanced Speedstep Technology Enabled/Disabled:

Disabling Enhanced Speedstep Technology results in running all processors in maximal power/performance state.
Default is Enabled.

C1 Enhanced Mode Enabled/Disabled:

The C1 Enhanced Mode reduces power consunmption of CPUs in Halt state.

Linux commands

ulimit -s < n | unlimited >

This Linux command (a bash builtin command) sets the stack size to n kbytes, or unlimited to allow the stack size to grow without limit.

/usr/bin/taskset [options] [mask] [pid | command [arg] ... ]

This Linux command is used to set or retrieve the CPU affinity of a running process given its PID or to launch a new COMMAND with a given CPU affinity.
The option -c proclist or --cpu-list proclist specifies a numerical list of processors to be used. The list may contain multiple items, separated by comma, and ranges. For example -c 0,5,7,9-11.
Example: /usr/bin/taskset -c 3 $command executes $command on CPU 3.

SPEC config file feature submit

submit = /usr/bin/taskset -c $SPECCOPYNUM $command

When running multiple copies of benchmarks, the SPEC config file feature submit is sometimes used to cause individual jobs to be bound to specific processors. This specific submit command is used for Linux.
The description of the elements of the command are: