Short Guide


  • Get the numabench2 source code via git:
    git clone git://
  • Also get Vc 0.7:
    git clone git:// Vc-0.7
  • First, build and install Vc:
    cd Vc-0.7
    git checkout 0.7
    mkdir build
    cd build
    make -j4
    make install/fast
  • Now you can build numabench2:
    cd numabench2
    mkdir build
    cd build
    make -j4
  • If you have root access on the machine I recommend to use "REALTIME_BENCHMARKS=TRUE". Otherwise omit the switch.
  • If you want to use a different compiler (GCC >= 4.6 is recommended) you can set the CC and CXX environment variables before you call cmake.

Run the Benchmark

Usage ./numabench [OPTION]...
Measure throughput and latency of memory in steps of 1GB

  -h, --help          print this message
  -o <filename>       output measurements to a file instead of stdout
  --firstCpu <id>
  --cpuStep <id>
  --size <GiB>
  --only <test function>
  --cores <firstId-lastId[:step][,firstId-lastId[:step][...]]>

You might have to use the --size option. Numabench will try to allocate as much memory as it thinks it can get. If that is too much it will crash. You can use the --size switch to specify how much memory numabench may allocate (use integer values).

Without the -o switch numabench will output the results as it measures them to stdout. This format is not useful for any further processing. Use the -o <filename> switch to create a CSV (tabs actually) file which contains the results. You can then use the supplied script to create a PDF using gnuplot internally:

./numabench -o data
./ data

Use the --listTests option to get a description of the individual benchmarks.