FLOP/s and Benchmarks
Floating-point rate is the headline metric of HPC, but benchmarks measure different things, and peak numbers rarely match real applications.
The unit of speed
HPC performance is quoted in FLOP/s, floating-point operations per second, scaled by prefixes: giga (10^9), tera, peta, and exa (10^18). Peak FLOP/s is the theoretical maximum from the hardware specification. Sustained FLOP/s is what a real code achieves, usually a fraction of peak because of memory, communication, and imbalance limits.
LINPACK and the Top500
The Top500 list ranks the world's fastest systems by the High Performance LINPACK benchmark, which solves a large dense linear system. LINPACK has very high arithmetic intensity, so it stresses arithmetic units and reaches a large fraction of peak, which makes it a good compute stress test but a poor predictor of memory- or communication-bound applications.
More representative benchmarks
- HPCG: a sparse conjugate-gradient solver; memory- and communication-bound, closer to real codes
- STREAM: measures sustainable memory bandwidth, not FLOP/s
- Application benchmarks: real codes on real inputs, the truest measure
Why peak deceives
Real applications routinely sustain only a few percent to a few tens of percent of peak FLOP/s, because most are limited by memory bandwidth or communication rather than arithmetic. Comparing systems on peak FLOP/s alone is misleading; what matters is time to solution on the workload of interest.
Reading a benchmark honestly
A credible performance claim states the benchmark, the problem size, the precision used, and the fraction of peak achieved. High-intensity benchmarks flatter compute-heavy machines; bandwidth and communication benchmarks reveal the limits that most simulations actually hit.