Benchmarks are provided on four different abstraction levels:
Algorithmic Level: Circuits are described in a textbook-like
fashion using high-level constructs.
Target-Independent Level: Circuits are unfolded and unrolled
representations of the circuits from the algorithmic level.
Target-dependent Native Gates Level: Circuits are synthesized
to a particular native gate-set.
Target-dependent Mapped Level: Circuits are mapped to a
Used File Format:
Until openQASM 3.0 is widely supported, all circuits (except those on
the algorithmic level) are provided as .qasm files following
the openQASM 2.0 standard. Circuits on the algorithmic level can
directly be generated (as IBM Qiskit QuantumCircuit objects) using the
mqt.bench python package. More details on openQASM 2.0 can be
found here, and on
openQASM 3.0 here.
Not every benchmark is necessarily available for every possible
configuration of the available options. For example, not all qubit
counts in a given range might be available for a selected benchmark.
Mapped benchmarks are only available up to the biggest available
architecture. That is, for IBM (for Rigetti) mapped benchmarks are
available only for instances with up to 127 qubits (80 qubits).
Since the .zip file may be composed of numerous files
(currently, we offer more than 30.000 benchmark circuits), the
following naming convention is used for the respective files:
For this level, dedicated .qasm files cannot be provided
yet, since openQASM 2.0 supports only a set of quantum gates.
Thus, we provide those benchmarks using our pypi package which is
accessible via pip.