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.
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]
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.
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]
The benchmark programs are: [5]
Benchmark | Language | Category | Description |
410.bwaves | Fortran | Fluid Dynamics | Simulates 3D transonic transient laminar viscous flow. |
416.gamess | Fortran | Quantum Chemistry | Self-consistent field computations are performed using Restricted open-shell Hartree–Fock, the Restricted Hartree Fock method, and Multi-Configuration Self-Consistent Field |
433.milc | C | Physics: Quantum Chromodynamics | A program that generates gauge field for lattice gauge theory programs with dynamical quarks. |
434.zeusmp | Fortran | Physics/ CFD | A computational fluid dynamics program developed at NCSA( University of Illinois at Urbana-Champaign) for the simulation of astrophysical phenomena. |
435.gromacs | C/ Fortran | Biochemistry/ Molecular Dynamics | Computes Newtonian equations of motion for hundreds to millions of particles. It simulates protein Lysozyme in a solution. |
436.cactusADM | C/ Fortran | Physics/ General Relativity | Simulates the Einstein evolution equations using a staggered-leapfrog numerical method |
437.leslie3d | Fortran | Fluid Dynamics | Computational Fluid Dynamics (CFD) using Large-Eddy Simulations with Linear-Eddy Model in 3D. Uses the MacCormack Predictor-Corrector time integration scheme. |
444.namd | C++ | Biology/ Molecular Dynamics | Simulates large biomolecular systems. The simulation has 92,224 atoms of apolipoprotein A - I. |
447.dealII | C++ | Finite Element Analysis | Computes adaptive finite elements and error estimation. The simulation solves a Helmholtz-type equation with non-constant coefficients. |
450.soplex | C++ | Linear Programming, Optimization | Solves 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-tracing | The computation is a 1280x1024 anti-aliased image of a landscape with some abstract objects with textures using a Perlin noise function. |
454.Calculix | C/ Fortran | Structural Mechanics | Computes finite element code for linear and nonlinear 3D structural applications. Uses the SPOOLES solver library. |
459.GemsFDTD | Fortran | Computational Electromagnetics | Simulates the Maxwell equations in 3D using the finite-difference time-domain (FDTD) method. |
465.tonto | Fortran | Quantum Chemistry | The simulation places a constraint on a molecular Hartree–Fock wave function calculation to better match experimental X-ray diffraction data. |
470.lbm | C | Fluid Dynamics | Implements the "Lattice-Boltzmann Method" to compute incompressible fluids in 3D |
481.wrf | C/ Fortran | Weather | Weather Prediction and Weather modeling from scales of meters to thousands of kilometers. The simulation is from a 30 km area over 2 days. |
482.sphinx3 | C | Speech recognition | A widely known speech recognition system developed by Carnegie Mellon University |
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.
The benchmark programs are: [7]
Benchmark | Language | Category | Description |
168.wupwise | Fortran 77 | Physics / Quantum Chromodynamics | A Wuppertal Wilson Fermion Simulator in the area of lattice gauge theory (quantum chromodynamics). |
171.swim | Fortran 77 | Shallow Water Modeling | Weather prediction program for benchmarking the performance of current supercomputers. |
172.mgrid | Fortran 77 | Physics Multi-grid Solver: 3D Potential Field | Computes a three-dimensional potential field using a very simple multigrid solver. |
173.applu | Fortran 77 | Parabolic / Elliptic Partial Differential Equations | Simulates 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.mesa | C | 3-D Graphics Library | Program that is a free OpenGL work-alike library. |
178.galgel | Fortran 90 | Computational Fluid Dynamics | Performs numerical analysis of oscillatory instability of convection in low-Prandtl-number fluids |
179.art | C | Image Recognition / Neural Networks | Recognizes objects in a thermal images using The Adaptive Resonance Theory 2 (ART 2) neural network. |
183.equake | C | Seismic Wave Propagation Simulation | Computes the propagation of elastic waves in large, highly heterogeneous valleys, such as California's San Fernando Valley, or the Greater Los Angeles Basin. |
187.facerec | Fortran 90 | Image Processing: Face Recognition | This program performs face recognition system. |
188.ammp | C | Computational Chemistry | This 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.lucas | Fortran 90 | Number Theory / Primality Testing | Computes the Lucas-Lehmer test to check primality of Mersenne numbers 2^p-1, using arbitrary-precision (array-integer) arithmetic. |
191.fma3d | Fortran 90 | Finite-element Crash Simulation | This program computes the inelastic, transient dynamic response of three-dimensional solids and structures subjected to impulsively or suddenly applied loads. |
200.sixtrack | Fortran 77 | High Energy Nuclear Physics Accelerator Design | Simulates the tracking of variable number of particles for a variable number of turns round a model of a particle accelerator. |
301.apsi | Fortran 77 | Meteorology: Pollutant Distribution | Attempts 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. |
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.
The benchmark programs are: [8]
Benchmark | Category |
101.tomcatv | Vectorized mesh generation. |
102.swim | Shallow water equations. |
103.su2cor | Monte-Carlo method. |
104.hydro2d | Navier Stokes equations. |
107.mgrid | 3D potential field. |
110.applu | Partial differential equations. |
125.turb3d | Turbulence modeling. |
141.apsi | Weather prediction. |
145.fpppp | Image From Gaussian series of quantum chemistry benchmarks. |
146.wave5 | Maxwell's equations. |
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.
The benchmark programs are: [11]
Benchmark | Language | Category |
013.spice2g6 | Fortran | Analog circuits (double precision) |
015.doduc | Fortran | Monte-Carlo simulation |
034.mdljdp2 | Fortran | Atoms interacting through the idealized Lennard-Jones potential |
039.wave5 | Fortran | Maxwell's equations on a Cartesian mesh |
047.tomcatv | Fortran | Two-dimensional, boundary-fitted coordinate systems around general geometric domains. |
048 ora | Fortran | Rays through an optical surface |
052.alvinn | C | Neural network using back propagation |
056.ear | C | Simulates the human ear by converting a sound file to a cochleogram using Fast Fourier Transforms and other math library functions |
077.mdljsp2 | Fortran | Motion equations for a model of 500 atoms |
078.swm256 | Fortran | Shallow water equations using finite difference approximations |
089.su2cor | Fortran | Masses of elementary particles in the framework of the Quark Gluon theory. |
090.hydro2d | Fortran | Hydrodynamical Navier Stokes equations to calculate galactical jets |
093.nasa7 | Fortran | Program kernels of operations used frequently in NASA applications |
094.fpppp | Fortran | Multi-electron integral derivatives |
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.
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.
Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.
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.
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.
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.
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.
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".
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.
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.
The Sun Microsystems Ultra 80 is a computer workstation that shipped from November 1999 to 2002.
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.