Hybrid Schrödinger-Feynman Simulator#
Hybrid Schrödinger-Feynman approaches strive to use all the available memory and processing units in order to efficiently simulate quantum circuits which would (1) run into memory bottlenecks using Schrödinger-style simulation, or (2) take exceedingly long using Feynman-style path summation—eventually trading-off the respective memory and runtime requirements.
Usage in Python#
Available backends in the provider DDSIMProvider
:
hybrid_qasm_simulator
to simulate and sample from the resulting statehybrid_statevector_simulator
to simulate and explicitly return the state vector (which will require an exponential amount of memory in the number of qubits)
Usage as Standalone Executable#
Please see Circuit Simulator on how to build the ddsim_simple
(the name stuck due to historical reasons ;) ) CMake target.
Launching the standalone executable with -h
parameter shows the available options (truncated to highlight the hybrid settings):
$ ./ddsim_simple --help
MQT DDSIM by https://www.cda.cit.tum.de/ -- Allowed options:
-h [ --help ] produce help message
--seed arg (=0) seed for random number generator (default zero is possibly directly used as seed!)
--shots arg (=0) number of measurements (if the algorithm does not contain non-unitary gates, weak simulation is used)
--pv display the state vector as list of pairs (real and imaginary parts)
--ps print simulation stats (applied gates, sim. time, and maximal size of the DD)
--pm print measurement results
--pcomplex print print additional statistics on complex numbers
--verbose Causes some simulators to print additional information to STDERR
--simulate_file arg simulate a quantum circuit given by file (detection by the file extension)
--simulate_file_hybrid arg simulate a quantum circuit given by file (detection by the file extension) using the hybrid Schrodinger-Feynman simulator
--hybrid_mode arg mode used for hybrid Schrodinger-Feynman simulation (*amplitude*, dd)
--nthreads arg (=2) #threads used for hybrid simulation
[...]
If you are using this simulator, please cite [8].