JuliaQuantumControl / QuantumPropagators.jl

Propagators for Quantum Dynamics and Optimal Control
https://juliaquantumcontrol.github.io/QuantumPropagators.jl/
MIT License
17 stars 5 forks source link

Add benchmarks #4

Open goerz opened 3 years ago

goerz commented 3 years ago

I'd like to have pretty thorough benchmarking for all of the propagators (as a Literate.jl fiile that gets included in the documentation).

For each method, let's benchmark the (wallclock) runtime and memory usage for

  1. the "initialization" (creating the workspace, e.g. ChebyWrk) depending on the size of the Hilbert space
  2. a single time step, depending on the size of the Hilbert space
  3. a single time step for a fixed size Hilbert space (>1000) depending on the sparsity of the Hamiltonian
  4. the propagation over a time grid for a fixed size Hilbert space (>1000), depending on the number of time steps

For the polynomial methods, in addition to wallclock runtime, we might also want "number matrix-vector products"

In each case, we'll want to look at both dense and sparse Hamiltonians:

There is no point in doing a dense Liouvillian: that's the same as propagating a dense Hamiltonian of the same size. So the different Liouvillians should always be sparse, but derive from the above dense/sparse Hamiltonians, and using Lindblad operators for spontaneous decay and dephasing from all levels with random decay rates.