Paper supplement: Algorithms and software for computing and utilizing the Dyson series and Magnus expansion
This repository is a supplement to the paper in the above title, containing notebooks, code, and
data, for generating the plots in the paper. This data in this repository was run using Python
3.10
, Qiskit Dynamics main
branch commit 948809
, JAX version 0.4.8
, and CUDA 12.
Running the benchmarking
The paper contains a number of figures displaying relationships between speed and solver
configurations, the data for these figures can be generated from this codebase, specifically using
the benchmarking
folder.
Each set of data is generated by 3 files with names *_multiple.py
, *_single.sh
, and *_single.py
,
setup to submit jobs in a cluster environment. *_multiple.py
is a python script which submits
the individual simulation jobs specified by the bash script *_single.sh
. *_single.sh
sets up
the required python environment, and runs the python script *_single.py
to run the simulations
and save the data.
The three sets of data are:
- GPU odeint parallel saturation test, with script file prefix
odeint_gpu_parallel
. The results are stored in the foldergpu_parallel_saturation
. odeint
benchmark data, with file prefixesodeint_cpu_benchmarks
andodeint_gpu_benchmarks
, with data stored in folders of the same name.- Perturbative solver benchmark data, with file prefixes
perturbative_cpu_benchmarks
andperturbative_gpu_benchmarks
, with data stored in folders of the same name.