SPEC CPU2006 Documentation

This index was last updated: $Date: 2011-10-20 07:25:58 -0400 (Thu, 20 Oct 2011) $ by $Author: JohnHenning $

(To check for possible updates to the SPEC CPU2006 documentation, see www.spec.org/cpu2006/Docs.

Suggested reading order:

If you are just getting started with SPEC CPU2006, here is a suggested reading order:

  1. Start with readme1st.html to get an overview of the suite and the process.

  2. Use system-requirements.html to help you choose which computer to use as your first test system.

  3. Once you've chosen the test system, install the suite, using install-guide-unix.html or install-guide-windows.html.

  4. Read at least the first part of runspec.html, because runspec is the primary tool in the suite. It is used to build the benchmarks, run them, and report on their results. You should read at least section 1 through section 3.1 of that document.

  5. After that, you can pick and choose which documents to read based on where your needs may take you. The list in the next section can help you decide. Note that the run rules will need to be studied carefully if you plan to quote results in public.

List of documents

The following documents are included on the SPEC CPU2006 DVD.


A summary of the changes that have been made in the V1.1 maintenance release for SPEC CPU2006


A summary of the changes that have been made in the V1.2 maintenance release for SPEC CPU2006


SPEC CPU2006 provides benchmarks in source code form, which are compiled under control of SPEC's toolset. A config file controls how they are compiled, and also controls various settings for your tests. If you are new to the suite, you will probably start with an existing config file, such as one downloaded from www.spec.org/cpu2006. Eventually, you will either want to understand the details of what is inside that config file, or you will want to write your own. This document tells you how.

(History: SPEC CPU2006 V1.0 added a preprocessor, section specifiers that apply to multiple benchmarks or which inherit from other benchmarks, a host of other convenience features, and a tutorial chapter on using feedback directed optimization. For SPEC CPU2006 V1.1 and later changes, see the change documents just above.)


Information about the contributors to SPEC CPU2006.


Known problems and errata information.


Frequently asked technical questions


When the benchmarks are compiled, compilation flags (such as -O5 or -unroll) are detected and automatically reported by the tools. A flag description file helps the tools recognize such flags and describe them in reports. The tester is responsible for providing a flag description file to go with his or her config file. This document tells you how to write a flag description file.

Note that if you are just getting started with SPEC CPU2006, you may find that your starter config file already points to a valid flags description, via the config file flagsurl field.

(History: Automated flag reporting was added in SPEC CPU2006 V1.0, and has evolved in later releases, as indicated in the change documents, above.)


How to install SPEC CPU2006 on Unix, Linx, and Mac OS X systems. Includes an example installation and an example of running the first benchmark.


How to install SPEC CPU2006 on Microsoft Windows systems. Includes an example installation and an example of running the first benchmark.


Copyright notice and other legal information.


Advanced users of the suite who want to understand exactly how the benchmarks are built can use this file to help decipher the process.


Information about monitoring hooks.


Information about what needs to be done to get a benchmark run ready for submission to SPEC for publication on its website.


Written in the form of questions and answers, this document provides useful background information to the SPEC CPU benchmarks, explains which system components are measured, gives a high-level overview of the benchmarking steps, summarizes the contents of the SPEC CPU2006 package, and details types of metrics available with the suite.


The SPEC CPU2006 Run and reporting rules. These must be followed for generating publicly disclosed results. If you plan to quote results in public, you will need to study these rules carefully.

SPEC CPU2006 V1.2 has updated the rules. The most recent version may be found on SPEC's website at www.spec.org/cpu2006/Docs/runrules.html. An "Edit History" section is available at the top of the document. Please notice:

Testers are required to comply with the version posted as of the date of their testing. In the event of substantive changes, a notice will be posted at SPEC's top-level page, http://www.spec.org, to define a transition period during which compliance with the new rules is phased in.


Information on the "runspec" command, which is the primary user interface for running SPEC CPU2006 benchmarks and reporting results.

(History: features added with SPEC CPU2006 V1.0 included new methods for sharing an installation among multiple users; optional version checking against www.spec.org; CSV output for spreadsheets; emailing of reports; the ability to specify min and max for the graphs; and a feature to preview what a report will look like prior to running the test. Additional features and changes since SPEC CPU2006 V1.0 are described in the change documents, above.)


Some users prefer to avoid using the SPEC-supplied toolset, because they have specialized tasks that require more direct access to the benchmarks. Such tasks might include instrumenting the code, doing performance traces, or debugging an experimental compiler. This document describes how you can use SPEC's tools for the minimal purpose of just generating work directories, for use as a private sandbox.

(History: This document was retitled for SPEC CPU2006 V1.0 (it used to be called "execution_without_SPEC_tools") and it uses new techniques, notably --fake)


A SPEC result includes a system description. If your system allows it, you may be able to automate part of the process of gathering a system description. This perl script provides an example of how that might be done. Note: some web browsers may refuse to open a file of type ".pl". If clicking on the link doesn't work, try saving the file and opening it with your favorite text editor.

(History: Automated system descriptions were added in SPEC CPU2006 V1.0 and substantially revised in V1.2, as described in the V1.2 change document above.)


A list of the hardware and software needed in order to run the SPEC CPU2006 suite.

(History: The system requirements for SPEC CPU2006 vary by release.)


Information on SPEC technical support.


How to build (or re-build) the tools such as runspec


How to use various utilities, such as specinvoke, specdiff, and specmake.

(History: Several utilities were added for SPEC CPU2006 V1.0, including the ability to extract a flags file, and to easily move around in run directory trees. For changes since SPEC CPU2006 V1.0, see the change documents above.)

Benchmark Documentation

Integer Benchmarks

400.perlbench C PERL Programming Language
401.bzip2 C Compression
403.gcc C C Compiler
429.mcf C Combinatorial Optimization
445.gobmk C Artificial Intelligence: go
456.hmmer C Search Gene Sequence
458.sjeng C Artificial Intelligence: chess
462.libquantum C Physics: Quantum Computing
464.h264ref C Video Compression
471.omnetpp C++ Discrete Event Simulation
473.astar C++ Path-finding Algorithms
483.xalancbmk C++ XML Processing

Floating Point Benchmarks

410.bwaves Fortran Fluid Dynamics
416.gamess Fortran Quantum Chemistry
433.milc C Physics: Quantum Chromodynamics
434.zeusmp Fortran Physics / CFD
435.gromacs C/Fortran Biochemistry/Molecular Dynamics
436.cactusADM C/Fortran Physics / General Relativity
437.leslie3d Fortran Fluid Dynamics
444.namd C++ Biology / Molecular Dynamics
447.dealII C++ Finite Element Analysis
450.soplex C++ Linear Programming, Optimization
453.povray C++ Image Ray-tracing
454.calculix C/Fortran Structural Mechanics
459.GemsFDTD Fortran Computational Electromagnetics
465.tonto Fortran Quantum Chemistry
470.lbm C Fluid Dynamics
481.wrf C/Fortran Weather Prediction
482.sphinx3 C Speech recognition

Some individual benchmark in the suite have additional documents, found in the benchmark "Docs" subdirectory on your installed benchmark tree, or on the SPEC CPU2006 distribution media. For example, additional information about 465.tonto may be found in:

$SPEC/benchspec/CPU2006/401.bzip2/Docs/465.tonto.html (Unix)
%SPEC%\benchspec\CPU2006\401.bzip2\Docs\465.tonto.html (Windows)

Redistributable Sources

On the SPEC distribution media (DVD), you will find:

redistributable_sources/README Information about freely-available sources
                               that have been incorporated in SPEC CPU2006

Copyright 1999-2011 Standard Performance Evaluation Corporation
All Rights Reserved