Benchmarking is usually associated with assessing performance characteristics of computer hardware, for example, the floating point operation performance of a CPU, but there are circumstances when the technique is also applicable to software.
Benchmarks are particularly important in semiconductor microprocessor design, giving processor architects the ability to measure and make tradeoffs in microarchitectural decisions.
Benchmarks are now regularly used by compiler companies to improve not only their own benchmark scores, but real application performance.
NAS Parallel Benchmarks Comprehensive benchmark report with results on variety of HPC platforms with a suite of application and kernel problems implemented in MPI.
STREAM-The STREAM benchmark is a simple synthetic benchmark program that measures sustainable memory bandwidth, in MB/s, and the corresponding computation rate for simple vector kernels.
Like previous OpenMP benchmarks, this suite compares the time to perform some work (in our tests, a spin wait with a duration parameter) using the directive being measured to the time of a reference measurement that captures the cost of performing similar work without using the directive.