You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Dec 20, 2023. It is now read-only.
The task is to gather a representative set of benchmarks for DDSIM and set up a corresponding benchmark suite.
This builds on #4
On the one hand, this means different simulators within DDSIM. This should at least include:
The general purpose simulators:
CircuitSimulator,
HybridSchrodingerFeynmanSimulator in Amplitude and DD mode,
UnitarySimulator in Sequential and Recursive mode,
DeterministicNoiseSimulator
StochasticNoiseSimulator
The special purpose simulators:
GroverSimulator
ShorFastSimulator
You can look into the respective test/test_* files to get some inspiration on how the tests could look like.
On the other hand, this means benchmark circuits (for the general purpose simulators).
Some of algorithms are already built into the QFR and can be used as qc input right away (see https://github.com/cda-tum/qfr/tree/main/include/algorithms)
Entanglement (GHZ state)
Berstein-Vazirani (regular circuit and dynamic version)
Quantum Phase Estimation (regular circuit and dynamic version)
QFT (regular circuit and dynamic version) -- probably only interesting for the UnitarySimulator
Some Ansatz functions (realamprandom, su2random, twolocalrandom)
QAOA
It would be preferable to have these implemented in C++ just as the other algorithms (would be a nice "Getting Started" activity), but it is not a must have. You can also generate the circuits using mqt.bench.
As for the size of the benchmarks: The current max in the DD package, without changing anything, is 128 qubits. Benchmarks that run in significantly less than a second are not interesting. The interesting runtimes are between 1s and 300s per benchmark. So careful selection is key. Otherwise running the evaluation once will take forever.
In all cases, make sure to fix a random seed wherever applicable so that results are reproducible (as much as possible).
The text was updated successfully, but these errors were encountered:
The task is to gather a representative set of benchmarks for DDSIM and set up a corresponding benchmark suite.
This builds on #4
On the one hand, this means different simulators within DDSIM. This should at least include:
The general purpose simulators:
CircuitSimulator
,HybridSchrodingerFeynmanSimulator
inAmplitude
andDD
mode,UnitarySimulator
inSequential
andRecursive
mode,DeterministicNoiseSimulator
StochasticNoiseSimulator
The special purpose simulators:
GroverSimulator
ShorFastSimulator
You can look into the respective
test/test_*
files to get some inspiration on how the tests could look like.On the other hand, this means benchmark circuits (for the general purpose simulators).
Some of algorithms are already built into the QFR and can be used as
qc
input right away (see https://github.com/cda-tum/qfr/tree/main/include/algorithms)UnitarySimulator
Some benchmarks are not yet implemented in C++, but would be rather helpful. See https://github.com/cda-tum/MQTBench/tree/main/src/mqt/bench/benchmarks for Python/Qiskit reference implementations.
realamprandom
,su2random
,twolocalrandom
)It would be preferable to have these implemented in C++ just as the other algorithms (would be a nice "Getting Started" activity), but it is not a must have. You can also generate the circuits using
mqt.bench
.As for the size of the benchmarks: The current max in the DD package, without changing anything, is 128 qubits. Benchmarks that run in significantly less than a second are not interesting. The interesting runtimes are between 1s and 300s per benchmark. So careful selection is key. Otherwise running the evaluation once will take forever.
In all cases, make sure to fix a random seed wherever applicable so that results are reproducible (as much as possible).
The text was updated successfully, but these errors were encountered: