DanPuzzuoli / multivariable_dyson_magnus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

  1. GPU odeint parallel saturation test, with script file prefix odeint_gpu_parallel. The results are stored in the folder gpu_parallel_saturation.
  2. odeint benchmark data, with file prefixes odeint_cpu_benchmarks and odeint_gpu_benchmarks, with data stored in folders of the same name.
  3. Perturbative solver benchmark data, with file prefixes perturbative_cpu_benchmarks and perturbative_gpu_benchmarks, with data stored in folders of the same name.

About


Languages

Language:Jupyter Notebook 99.5%Language:Python 0.4%Language:Shell 0.0%