Skip to content

Add benchmarks #4

@goerz

Description

@goerz

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions