CPU2006 Flag Description
Fujitsu Siemens Computers CELSIUS V840, AMD Opteron 2354 (2.2 GHz)

Copyright © 2008 The Portland Group, Inc. (for PGI compilers)
Copyright © 2008 PathScale LLC (for PathScale Compiler Suite)

Base Compiler Invocation

C benchmarks

C++ benchmarks


Peak Compiler Invocation

C benchmarks (except as noted below)

400.perlbench

403.gcc

445.gobmk

464.h264ref

C++ benchmarks (except as noted below)

483.xalancbmk


Base Portability Flags

400.perlbench

401.bzip2

403.gcc

429.mcf

445.gobmk

456.hmmer

458.sjeng

462.libquantum

464.h264ref

483.xalancbmk


Peak Portability Flags

400.perlbench

401.bzip2

445.gobmk

456.hmmer

458.sjeng

462.libquantum

464.h264ref

483.xalancbmk


Base Optimization Flags

C benchmarks

C++ benchmarks


Peak Optimization Flags

C benchmarks

400.perlbench

401.bzip2

403.gcc

429.mcf

445.gobmk

456.hmmer

458.sjeng

462.libquantum

464.h264ref

C++ benchmarks

471.omnetpp

473.astar

483.xalancbmk


Peak Other Flags

C++ benchmarks

483.xalancbmk


Implicitly Included Flags

This section contains descriptions of flags that were included implicitly by other flags, but which do not have a permanent home at SPEC.


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

MP_BIND

This Environment Variable controls the runtime behavior of binaries compiled with the PGI compilers.
It can be set to yes or y to bind processes or threads executing in a parallel region to physical processors, or to no or n to disable such binding. The default is to not bind processes to processors.
This is an execution time environment variable interpreted by the PGI runtime support libraries. It does not affect the behavior of the PGI compilers in any way. Note: the MP_BIND environment variable is not supported on all platforms.

MP_BLIST

This Environment Variable controls the runtime behavior of binaries compiled with the PGI compilers.
In addition to the MP_BIND variable, it is possible to define the thread-CPU relationship. For example, setting MP_BLIST=3,2,1,0 maps CPUs 3, 2, 1 and 0 to threads 0, 1, 2 and 3 respectively.

OMP_NUM_THREADS

This Environment Variable controls the runtime behavior of binaries compiled with the PGI and PathScale compilers.
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.

PGI_HUGE_PAGES

This Environment Variable controls the runtime behavior of binaries compiled with the PGI compilers.
The maximum number of huge pages an application is allowed to use can be set at run time via the environment variable PGI_HUGE_PAGES. If not set, then the process may use all available huge pages when compiled with "-Msmartalloc=huge" or a maximum of n pages where the value of n is set via the compile time flag "-Msmartalloc=huge:n."

KMP_AFFINITY

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.

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.

ulimit -l < n | unlimited >

This Linux command (a bash builtin command) sets the maximum size of memory that may be locked into physical memory.

numactl -m nodes --physcpubind=cpus command

numactl runs processes with a specific NUMA scheduling or memory placement policy. The policy is set for command and inherited by all of its children. The arguments used here are:

numactl has many more options which are not described here since they are not used.

SPEC config file feature submit

submit = echo "$command" >run.sh ; $BIND bash run.sh

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:

Linux Huge Page settings

In order to take full advantage of using PGI's huge page runtime library, your system must be configured to use huge pages. It is safe to run binaries compiled with "-Msmartalloc=huge" on systems not configured to use huge pages, however, you will not benefit from the performance improvements huge pages offer. To configure your system for huge pages perform the following steps:

Note that further information about huge pages may be found in your Linux documentation file: /usr/src/linux/Documentation/vm/hugetlbpage.txt


Flag description origin markings:

[user] Indicates that the flag description came from the user flags file.
[suite] Indicates that the flag description came from the suite-wide flags file.
[benchmark] Indicates that the flag description came from a per-benchmark flags file.

The flags file that was used to format this result can be browsed at
http://www.spec.org/cpu2006/flags/fsc-mix-pgi-path.html.

You can also download the XML flags source by saving the following link:
http://www.spec.org/cpu2006/flags/fsc-mix-pgi-path.xml.


For questions about the meanings of these flags, please contact the tester.
For other inquiries, please contact webmaster@spec.org
Copyright 2006-2014 Standard Performance Evaluation Corporation
Tested with SPEC CPU2006 v1.0.
Report generated on Tue Jul 22 19:59:18 2014 by SPEC CPU2006 flags formatter v6906.