SPECint

From Wikipedia, the free encyclopedia

SPECint is a computer benchmark specification for CPU's integer processing power. It is maintained by the Standard Performance Evaluation Corporation (SPEC).

The latest standard of SPECint is CINT2000 (aka SPECint2000), which is the integer performance testing component of the SPEC CPU2000 suite. CPU2000 is a set of benchmarks designed to test the CPU performance of a modern server computer system. It is split into 2 components, the first being CINT2000, the other being CFP2000 (SPECfp), for floating point testing.

For a fee, SPEC distributes source code files to users wanting to test their systems. These files are written in a standard programming language, which is then compiled for each particular CPU architecture and operating system. Thus, the performance measured is that of the CPU, RAM, and compiler, and does not test I/O, networking, or graphics.

SPEC defines a base runtime for each of the 12 benchmark programs. For SPECint2000, that number ranges from 1000–3000 seconds. The timed test is run on the system, and the time of the test system is compared to the reference time, and a ratio is computed. That ratio, multiplied by 100, becomes the SPECint score for that test.

As an example, we'll use the Sun Microsystems Fire V20z, with an AMD Opteron 252 CPU, running at 2600 MHz. Let's use the 164.gzip benchmark, which has a 1400 s reference time. We time how long it takes the 164.gzip benchmark to execute on our V20z test system, and find it takes 90.4 s. 1400/90.4 * 100 = 1548. Thus our 'base ratio' is quoted as '1548'. There are no units.

The normalized mean of the 12 benchmarks is given as the SPECint_base2000. The SPECint_base2000 of our above mentioned test system is 1569.

Two metrics are reported for a particular benchmark, "base" and "peak". The difference between the numbers arises based on compilation options. As the SPEC benchmarks are distributed as source code, it is up to the party performing the test to compile this code. There is agreement that the benchmarks should be compiled in the same way as a user would compile a program, but there is no consistent method for user compilation, it varies system by system. SPEC, in this case, defines two reference points, "base" and "peak". Base has a more strict set of compilation rules than peak. Less optimization can be done, the compiler flags must be the same for each benchmark, in the same order, and there must be a limited number of flags. Base, then, is closest to how a user would compile a program with standard flags. The 'peak' metric can be performed with maximum compiler optimization, even to the extent of different optimizations for each benchmark. This number represents maximum system performance, achieved by full compiler optimization.

SPECint tests are carried out on a wide range of hardware, with results typically published for the full range of Intel and AMD x86 & x86-64 processors, Sun SPARC CPUs, IBM POWER CPUs, as well as HP Alpha , PA-RISC and Itanium lines. This wide range of capabilities, specifically in this case the number of CPUs, means that the SPECint benchmark is usually run on only a single CPU, even if the system has many CPUs. If a single CPU has dual-cores, only a single core is used; hyper-threading is also typically disabled,

A more complete system benchmark, that allows all CPUs to be used, is known as SPECint_rate2000, which can also be called "CINT2000 Rate".

There are older, retired versions of the SPEC's CPU benchmark, known as CPU95 and CPU92. The next version, currently under development, will be named at the time of release, but is currently known as CPU2005.

[edit] Benchmarks

The SPECint test suite consists of 12 benchmark programs, designed to test exclusively the integer performance of the system.

The benchmarks are:

Benchmark Language Category
164.gzip C Compression
175.vpr C FPGA Circuit Placement and Routing
176.gcc C C Programming Language Compiler
181.mcf C Combinatorial Optimization
186.crafty C Game Playing: Chess
197.parser C Word Processing
252.eon C++ Computer Visualization
253.perlbmk C Perl Programming Language
254.gap C Group Theory, Interpreter
255.vortex C Object-oriented Database
256.bzip2 C Compression
300.twolf C Place and Route Simulator

[edit] See also

[edit] External links