Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add benchmarks #4

Open
goerz opened this issue Aug 11, 2021 · 0 comments
Open

Add benchmarks #4

goerz opened this issue Aug 11, 2021 · 0 comments

Comments

@goerz
Copy link
Member

goerz commented Aug 11, 2021

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:

  • Use a random dense (Hermitian or non-Hermitian) matrix as the Hamiltonian
  • Use a random sparse (Hermitian or non-Hermitian) matrix as the Hamiltonian, with several fixed "sparsity values"
  • Use the Hamiltonian for two transmons with the cavity included as a "realistic" sparse Hamiltonian. Since we can choose where to truncate each transmon and the cavity, and random pulses should easily populate all levels, this is a good system for having "realistic" Hamiltonians of varying size n * n * m where n is the number of transmon levels and m is the number of cavity levels.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant