Superpositeur is a project to explore efficient algorithms behind density matrix simulation of quantum circuits.
Try me online (work in progress)
Developed at the TU in Delft, The Netherlands, as a collaboration between the Quantum Machine Learning group of Sebastian Feld and QuTech.
- Has a simple C++ and Python API to provide a list of gates/quantum operations as matrices or sets of Kraus operators to be executed
- Allows access to the full and reduced density matrices of the final quantum state, in an efficient fashion
- Allows access to the diagonal of a reduced density matrix (i.e. computational basis measurement probabilities), in an efficient fashion
- When the resulting quantum state is pure, return it as a (sparse) vector
- On top of the user-friendly Python and C++ API, but also a "low-level" API which allows efficient access to the underlying state, to use in possible front-ends
- Allows usage of user-defined custom gates or set of Kraus operators with arbitrary number of qubits
- Written in C++ and portable on Linux, MacOS, Windows, for 64 bits architectures x86 and ARM
- NO usage of randomness: the output of the simulator is perfectly deterministic, whatever the input circuit
- Fast and performant on a large class of quantum circuits
- Efficient use of memory
- Multithreading
- Documentation
- Research paper
- Fidelity of quantum states (and/or other metric) to compare two states
- When input circuit is obviously a tensor product of smaller circuits, simulate those separately
- Do some obvious optimization of the input circuit (e.g. collapse consecutive 1-qubit gates/Kraus operators operating on the same qubit)
- Explore how gate/operation scheduling impacts simulation complexity
- Benchmark, profiling and performance tuning
- Usage as backend of QX-simulator to simulate cQasm circuits once stable, robust and tested enough
- Pablo Le Hénaff (p.lehenaff@tudelft.nl)