Short Guide

Installation

  • Get the numabench2 source code via git:
    git clone git://code.compeng.uni-frankfurt.de/numabench/numabench2.git
  • Also get Vc 0.7:
    git clone git://code.compeng.uni-frankfurt.de/vc.git Vc-0.7
  • First, build and install Vc:
    cd Vc-0.7
    git checkout 0.7
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX=$HOME -DBUILD_TESTING=OFF ..
    make -j4
    make install/fast
    
  • Now you can build numabench2:
    cd numabench2
    mkdir build
    cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DREALTIME_BENCHMARKS=TRUE ..
    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
  --listTests
  --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 processOutput.sh script to create a PDF using gnuplot internally:

./numabench -o data
./processOutput.sh data

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