SPECfp

Last updated

SPECfp is a computer benchmark designed to test the floating-point performance of a computer. It is managed by the Standard Performance Evaluation Corporation. SPECfp is the floating-point performance testing component of the SPEC CPU testing suit. The first standard SPECfp was released in 1989 [1] as SPECfp89. Later it was replaced by SPECfp92, then SPECfp95, then SPECfp2000, then SPECfp2006, and finally SPECfp2017.

Contents

Background

SPEC CPU2017 is a suite of benchmark applications designed to test the CPU performance. The suite is composed of two sets of tests. The first being CINT (aka SPECint) which is for evaluating the CPU performance in integer operations. The second set is CFP (aka SPECfp) which is for evaluating the CPU floating-point operations performance.

The benchmark applications are programs that perform a strict set of operation that simulate real time situations, such as physical simulations, 3D graphics, and image processing. These applications are written in different programming languages, C, C++ and Fortran. Many SPECfp benchmark applications are derived from applications that are freely available to the public and each application is assigned a weight based on its importance.

To compute the SPECfp score, benchmark applications run on a reference machine and the time each application requires for completion is recorded as the reference time. When evaluating the performance of another machine, the benchmark application is run on that system and the time the application requires for completion is recorded. Then the ratio between the recorded time and the reference time is computed. The geometric mean of all the benchmark suite application ratios is then computed as the SPECfp score.

For example, 126.gcc application takes 1280 seconds to complete on the AlphaStation 200 4/100, while it takes 1700 seconds on the reference machine. So, the ratio is: 1700/1280 = 1.328, which implies that AlphaStation 200 4/100 is 32.8% faster than the reference machine in running the 126.gcc. [1]

SPECfp2017

The SPECfp2017 test is organized in 2 suites: SPECrate 2017 Floating Point and SPECspeed 2017 Floating Point containing in total 23 benchmark programs, designed to evaluate the floating-point operations performance of a given system. [2] The suite was released on June 2, 2017 replacing SPECfp2006 as of January 2018.

SPECfp2006

The SPECfp2006 test suite contains 17 benchmark programs, designed to evaluate the floating-point operations performance of a given system. Three of these programs are written in C, four are written in C++, six are written in Fortran, and four are written in both C and Fortran. The suite was released on August 24, 2006 [3] replacing SPECfp2000 as of February 2007. [4]

Benchmarks

The benchmark programs are: [5]

Benchmark Language CategoryDescription
410.bwavesFortranFluid DynamicsSimulates 3D transonic transient laminar viscous flow.
416.gamessFortranQuantum ChemistrySelf-consistent field computations are performed using Restricted open-shell Hartree–Fock, the Restricted Hartree Fock method, and Multi-Configuration Self-Consistent Field
433.milcCPhysics: Quantum ChromodynamicsA program that generates gauge field for lattice gauge theory programs with dynamical quarks.
434.zeusmpFortranPhysics/ CFDA computational fluid dynamics program developed at NCSA( University of Illinois at Urbana-Champaign) for the simulation of astrophysical phenomena.
435.gromacsC/ FortranBiochemistry/ Molecular DynamicsComputes Newtonian equations of motion for hundreds to millions of particles. It simulates protein Lysozyme in a solution.
436.cactusADMC/ FortranPhysics/ General RelativitySimulates the Einstein evolution equations using a staggered-leapfrog numerical method
437.leslie3dFortranFluid DynamicsComputational Fluid Dynamics (CFD) using Large-Eddy Simulations with Linear-Eddy Model in 3D. Uses the MacCormack Predictor-Corrector time integration scheme.
444.namdC++Biology/ Molecular DynamicsSimulates large biomolecular systems. The simulation has 92,224 atoms of apolipoprotein A - I.
447.dealII C++Finite Element AnalysisComputes adaptive finite elements and error estimation. The simulation solves a Helmholtz-type equation with non-constant coefficients.
450.soplexC++Linear Programming, OptimizationSolves a linear program using a simplex algorithm and sparse linear algebra. Test simulation include railroad planning and military airlift models.
453.povray C++Image Ray-tracingThe computation is a 1280x1024 anti-aliased image of a landscape with some abstract objects with textures using a Perlin noise function.
454.Calculix C/ FortranStructural MechanicsComputes finite element code for linear and nonlinear 3D structural applications. Uses the SPOOLES solver library.
459.GemsFDTDFortranComputational ElectromagneticsSimulates the Maxwell equations in 3D using the finite-difference time-domain (FDTD) method.
465.tontoFortranQuantum ChemistryThe simulation places a constraint on a molecular Hartree–Fock wave function calculation to better match experimental X-ray diffraction data.
470.lbmCFluid DynamicsImplements the "Lattice-Boltzmann Method" to compute incompressible fluids in 3D
481.wrfC/ FortranWeatherWeather Prediction and Weather modeling from scales of meters to thousands of kilometers. The simulation is from a 30 km area over 2 days.
482.sphinx3CSpeech recognitionA widely known speech recognition system developed by Carnegie Mellon University

SPECfp2000

The SPECfp2000 test suite contains 14 benchmark programs, designed to evaluate the floating-point operations performance of a given system. Four of these programs are written in C, six are written in Fortran 77, and four are written in Fortran 90. The suite was released on December 30, 1999 [4] replacing SEPCfp95 as of July 2000. [6] This suite is currently retired.

Benchmarks

The benchmark programs are: [7]

Benchmark Language CategoryDescription
168.wupwiseFortran 77Physics / Quantum ChromodynamicsA Wuppertal Wilson Fermion Simulator in the area of lattice gauge theory (quantum chromodynamics).
171.swimFortran 77Shallow Water ModelingWeather prediction program for benchmarking the performance of current supercomputers.
172.mgridFortran 77Physics Multi-grid Solver: 3D Potential FieldComputes a three-dimensional potential field using a very simple multigrid solver.
173.appluFortran 77Parabolic / Elliptic Partial Differential EquationsSimulates five coupled nonlinear PDE's, on a 3-dimensional logically structured grid, using an implicit pseudo-time marching scheme, based on two-factor approximate factorization of the sparse Jacobian matrix.
177.mesaC3-D Graphics LibraryProgram that is a free OpenGL work-alike library.
178.galgelFortran 90Computational Fluid DynamicsPerforms numerical analysis of oscillatory instability of convection in low-Prandtl-number fluids
179.artCImage Recognition / Neural NetworksRecognizes objects in a thermal images using The Adaptive Resonance Theory 2 (ART 2) neural network.
183.equakeCSeismic Wave Propagation SimulationComputes the propagation of elastic waves in large, highly heterogeneous valleys, such as California's San Fernando Valley, or the Greater Los Angeles Basin.
187.facerecFortran 90Image Processing: Face RecognitionThis program performs face recognition system.
188.ammpCComputational ChemistryThis program computes molecular dynamics (i.e. solves the ODE defined by Newton's equations for the motions of the atoms in the system) on a protein-inhibitor complex which is embedded in water.
189.lucasFortran 90Number Theory / Primality TestingComputes the Lucas-Lehmer test to check primality of Mersenne numbers 2^p-1, using arbitrary-precision (array-integer) arithmetic.
191.fma3dFortran 90Finite-element Crash SimulationThis program computes the inelastic, transient dynamic response of three-dimensional solids and structures subjected to impulsively or suddenly applied loads.
200.sixtrackFortran 77High Energy Nuclear Physics Accelerator DesignSimulates the tracking of variable number of particles for a variable number of turns round a model of a particle accelerator.
301.apsiFortran 77Meteorology: Pollutant DistributionAttempts to solve for the mesoscale and synoptic variations of potential temperature, U AND V wind components, and the mesoscale vertical velocity W pressure and distribution of pollutants C having sources Q.

SPECfp95

The SPECfp95 test suite contains 10 benchmark programs, designed to evaluate the floating-point operations performance of a given system. The suite was released in March 1995 replacing SEPCfp92 as of September 1995. [6] This suite is currently retired.

Benchmarks

The benchmark programs are: [8]

BenchmarkCategory
101.tomcatvVectorized mesh generation.
102.swimShallow water equations.
103.su2corMonte-Carlo method.
104.hydro2dNavier Stokes equations.
107.mgrid3D potential field.
110.appluPartial differential equations.
125.turb3dTurbulence modeling.
141.apsiWeather prediction.
145.fppppImage From Gaussian series of quantum chemistry benchmarks.
146.wave5Maxwell's equations.

SPECfp92

The SPECfp92 test suite contains 14 benchmark programs, designed to evaluate the floating-point operations performance of a given system. Twelve of these programs are written in Fortran, and two are written in C. The suite was released in 1995 replacing SPECfp89. [9] With the release of this suite, the Baseline rule was introduced; in which vendors are no longer allowed to optimize the compilation of the code without reporting it. [10] This suite is currently retired.

Benchmarks

The benchmark programs are: [11]

Benchmark Language Category
013.spice2g6FortranAnalog circuits (double precision)
015.doducFortranMonte-Carlo simulation
034.mdljdp2FortranAtoms interacting through the idealized Lennard-Jones potential
039.wave5FortranMaxwell's equations on a Cartesian mesh
047.tomcatvFortranTwo-dimensional, boundary-fitted coordinate systems around general geometric domains.
048 oraFortranRays through an optical surface
052.alvinnCNeural network using back propagation
056.earCSimulates the human ear by converting a sound file to a cochleogram using Fast Fourier Transforms and other math library functions
077.mdljsp2FortranMotion equations for a model of 500 atoms
078.swm256FortranShallow water equations using finite difference approximations
089.su2corFortranMasses of elementary particles in the framework of the Quark Gluon theory.
090.hydro2dFortranHydrodynamical Navier Stokes equations to calculate galactical jets
093.nasa7FortranProgram kernels of operations used frequently in NASA applications
094.fppppFortranMulti-electron integral derivatives

See also

Related Research Articles

<span class="mw-page-title-main">Central processing unit</span> Central computer component which executes instructions

A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and input/output (I/O) operations specified by the instructions in the program. This contrasts with external components such as main memory and I/O circuitry, and specialized processors such as graphics processing units (GPUs).

Processor design is a subfield of computer engineering and electronics engineering (fabrication) that deals with creating a processor, a key component of computer hardware.

Dhrystone is a synthetic computing benchmark program developed in 1984 by Reinhold P. Weicker intended to be representative of system (integer) programming. The Dhrystone grew to become representative of general processor (CPU) performance. The name "Dhrystone" is a pun on a different benchmark algorithm called Whetstone, which emphasizes floating point performance.

<span class="mw-page-title-main">DEC Alpha</span> 64-bit RISC instruction set architecture

Alpha is a 64-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by Digital Equipment Corporation (DEC). Alpha was designed to replace 32-bit VAX complex instruction set computers (CISC) and to be a highly competitive RISC processor for Unix workstations and similar markets.

<span class="mw-page-title-main">Fortran</span> General-purpose programming language

Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.

<span class="mw-page-title-main">Instructions per second</span> Measure of a computers processing speed

Instructions per second (IPS) is a measure of a computer's processor speed. For complex instruction set computers (CISCs), different instructions take different amounts of time, so the value measured depends on the instruction mix; even for comparing processors in the same family the IPS measurement can be problematic. Many reported IPS values have represented "peak" execution rates on artificial instruction sequences with few branches and no cache contention, whereas realistic workloads typically lead to significantly lower IPS values. Memory hierarchy also greatly affects processor performance, an issue barely considered in IPS calculations. Because of these problems, synthetic benchmarks such as Dhrystone are now generally used to estimate computer performance in commonly used applications, and raw IPS has fallen into disuse.

<span class="mw-page-title-main">Overclocking</span> Practice of increasing the clock rate of a computer to exceed that certified by the manufacturer

In computing, overclocking is the practice of increasing the clock rate of a computer to exceed that certified by the manufacturer. Commonly, operating voltage is also increased to maintain a component's operational stability at accelerated speeds. Semiconductor devices operated at higher frequencies and voltages increase power consumption and heat. An overclocked device may be unreliable or fail completely if the additional heat load is not removed or power delivery components cannot meet increased power demands. Many device warranties state that overclocking or over-specification voids any warranty, however there are an increasing number of manufacturers that will allow overclocking as long as performed (relatively) safely.

<span class="mw-page-title-main">Standard Performance Evaluation Corporation</span>

The Standard Performance Evaluation Corporation (SPEC) is an American non-profit corporation that aims to "produce, establish, maintain and endorse a standardized set" of performance benchmarks for computers.

<span class="mw-page-title-main">OpenMP</span> Open standard for parallelizing

OpenMP is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, AIX, FreeBSD, HP-UX, Linux, macOS, and Windows. It consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior.

<span class="mw-page-title-main">Crafty</span>

Crafty is a chess program written by UAB professor Dr. Robert Hyatt, with continual development and assistance from Michael Byrne, Tracy Riegle, and Peter Skinner. It is directly derived from Cray Blitz, winner of the 1983 and 1986 World Computer Chess Championships. Tord Romstad, the author of Stockfish, described Crafty as "arguably the most important and influential chess program ever".

<span class="mw-page-title-main">Benchmark (computing)</span> Comparing the relative performance of computers by running the same program on all of them

In computing, a benchmark is the act of running a computer program, a set of programs, or other operations, in order to assess the relative performance of an object, normally by running a number of standard tests and trials against it.

SPECint is a computer benchmark specification for CPU integer processing power. It is maintained by the Standard Performance Evaluation Corporation (SPEC). SPECint is the integer performance testing component of the SPEC test suite. The first SPEC test suite, CPU92, was announced in 1992. It was followed by CPU95, CPU2000, and CPU2006. The latest standard is SPEC CPU 2017 and consists of SPECspeed and SPECrate.

<span class="mw-page-title-main">UltraSPARC T2</span> Microprocessor by Sun Microsystems

Sun Microsystems' UltraSPARC T2 microprocessor is a multithreading, multi-core CPU. It is a member of the SPARC family, and the successor to the UltraSPARC T1. The chip is sometimes referred to by its codename, Niagara 2. Sun started selling servers with the T2 processor in October 2007.

<span class="mw-page-title-main">Ultra 80</span>

The Sun Microsystems Ultra 80 is a computer workstation that shipped from November 1999 to 2002.

<span class="mw-page-title-main">VIA Nano</span>

The VIA Nano is a 64-bit CPU for personal computers. The VIA Nano was released by VIA Technologies in 2008 after five years of development by its CPU division, Centaur Technology. This new Isaiah 64-bit architecture was designed from scratch, unveiled on 24 January 2008, and launched on 29 May, including low-voltage variants and the Nano brand name. The processor supports a number of VIA-specific x86 extensions designed to boost efficiency in low-power appliances.

XL C/C++ is the name of IBM's proprietary optimizing C/C++ compiler for IBM-supported environments.

NBench, short for Native mode Benchmark and later known as BYTEmark, is a synthetic computing benchmark program developed in the mid-1990s by the now defunct BYTE magazine intended to measure a computer's CPU, FPU, and Memory System speed.

The x32 ABI is an application binary interface (ABI) and one of the interfaces of the Linux kernel. It allows programs to take advantage of the benefits of x86-64 instruction set while using 32-bit pointers and thus avoiding the overhead of 64-bit pointers.

The LINPACK Benchmarks are a measure of a system's floating-point computing power. Introduced by Jack Dongarra, they measure how fast a computer solves a dense n by n system of linear equations Ax = b, which is a common task in engineering.

References

  1. 1 2 "The SPEC Benchmarks". 2003-02-03. Retrieved 2010-07-24.
  2. "SPEC CPU2017 Documentation". 2018-05-18. Retrieved 2018-10-24.
  3. "SPEC CPU2006". 2010-06-16. Retrieved 2010-07-25.
  4. 1 2 "SPEC CPU2000". 2007-06-07. Retrieved 2010-07-25.
  5. "CFP2006 (Floating Point Component of SPEC CPU2006)". 2006-09-27. Retrieved 2010-07-25.
  6. 1 2 "SPEC CPU95 Benchmarks". 2003-09-23. Retrieved 2010-07-25.
  7. "CFP2000 (Floating Point Component of SPEC CPU2000)". 2003-10-16. Retrieved 2010-07-25.
  8. "SPEC CFP95 Benchmarks". 2003-09-26. Retrieved 2010-07-25.
  9. "SPEC CPU92 Benchmarks". 2003-09-23. Retrieved 2010-07-25.
  10. "baseline.txt". 2003-09-26. Retrieved 2010-07-25.
  11. "CFP92 Benchmarks". 2003-09-26. Retrieved 2010-07-25.