Single file teaching version
bwBench.c contains a single file version of The Bandwidth Benchmark that is tailored for usage in Tutorials or Courses.
It should compile with any C99 compiler.
Benchmarking skripts
bench.pl to determine the absolute highest main memory bandwidth
A wrapper scripts in perl (bench.pl) and python (bench.py) are also provided to scan ranges of thread counts and determine the absolute highest sustained main memory bandwidth. In order to use it likwid-pin has to be in your path. The script has three required and one optional command line arguments:
$./bench.pl <executable> <thread count range> <repetitions> [<SMT setting>]
Example usage:
$./bench.pl ./bwbench-GCC 2-8 6
The script will always use physical cores only, where two SMT threads is the default. For different SMT thread counts use the 4th command line argument. Example for a processor without SMT:
$./bench.pl ./bwbench-GCC 14-24 10 1
extractResults.pl to generate a plottable output files from multiple scaling runs
Please see how to use it in the toplevel README.