BabelStream is a benchmark which measures the memory transfer rates of the main capacity memory. It is written in almost all major parallel programming models, and so can run a wide range of devices including CPUs and GPUs from all vendors. The range of programming models allows it to be used as a “Rosetta Stone”, allowing comparisons between different programming models. The codes strives to represent the current best practices for writing a HPC-style code in each of the parallel programming models.
BabelStream was originally created to measure memory bandwidth on GPUs due to the lack of a universal benchmark. It is similar in spirit and is based on the McCalpin STREAM benchmark for CPUs, but differs in a number of key ways:
- It unlocks cross-architectural comparisons, so CPUs, GPUs and other processors can be benchmarked in a consistent way.
- The problem size is unknown at compile time, just like modern HPC codes, so the compiler cannot apply unfair optimisations.
- The arrays are allocated at runtime, in the main capacity memory, just like modern HPC codes.
It now is having significant impact for academic research, enabling new computer science in the field of performance portability and parallel programming models. It been used by international researchers at Intel, Codeplay, Edinburgh Parallel Computing Centre (EPCC), ETH Zurich, King Abdullah University of Science and Technology, Saudi Arabia (KAUST) and the United States Department of Energy Exascale Computing Project (ECP). It has been used in industry by AMD and IBM, and for system procurement in Norwegian national clusters.
The BabelSteam source code is availble on GitHub under a permissive licence.
- Deakin, Tom, James Price, Matt Martineau, and Simon McIntosh-Smith. “Evaluating Attainable Memory Bandwidth of Parallel Programming Models via BabelStream.” International Journal of Computational Science and Engineering 17, no. 3 (2018): 247–62. https://doi.org/10.1504/IJCSE.2018.095847.
- Hammond, Jeff R., Tom Deakin, James Cownie, and Simon McIntosh-Smith. “Benchmarking Fortran DO CONCURRENT on CPUs and GPUs Using BabelStream.” In International Workshop on Performance Modeling, Benchmarking and Simulation of High Performance Computer Systems Held in Conjunction with Supercomputing (PMBS). IEEE, 2022.
- Deakin, Tom, James Price, Matt Martineau, and Simon McIntosh-Smith. “GPU-STREAM v2.0: Benchmarking the Achievable Memory Bandwidth on Many-Core Processors across Diverse Parallel Programming Models.” In Performance Portable Programming Models for Accelerators Workshop Held in Conjuction with International Supercomputing Conference (P3MA). Springer, Cham, 2016. https://doi.org/10.1007/978-3-319-46079-6_34.