Home

Awesome

Benchmarks for quantum-optics frameworks

This repository collects a set of examples which can be used to compare different numerical quantum optics frameworks. The aim is to create implementations for the following frameworks:

Performing the benchmarks

Setting up the testing environment

To reduce noise use dedicated cpu core for the benchmarks. This can be done with cset:

sudo cset shield -k on -c 0
sudo cset shield --user=sebastian --group=users -e bash

Especially for julia, one still has to set the users home directory:

HOME=/home/sebastian

Running the benchmarks

Now one can either manually run benchmarks of interest by simply executing the benchmark file or alternatively use the runall.py script to run them all automatically.

Export data to website

After the benchmarks have been performed simply run:

julia make.jl

More information to this repository

The benchmark files

Every single benchmark file has more or less the same structure. A setup function that is used to create objects that is needed to perform the actual benchmark. The execution time of this code is not measured. The benchmark function which is called repeatedly with the previously calculated objects. And code needed to configure and perform the benchmark and check that the output is correct. Depending on each example, the time is measured that it takes to evaluate a function a certain number of times. This process is repeated a few times and the minimal time is used as benchmark time.

Structure of the repository

Helper scripts