Parameter Space¶
The get_benchmark() function has the following signature:
benchmark(see details):
['ae', 'bmw_quark_cardinality', 'bmw_quark_copula', 'bv', 'cdkm_ripple_carry_adder', 'dj', 'draper_qft_adder', 'full_adder', 'ghz', 'graphstate', 'grover', 'half_adder', 'hhl', 'hrs_cumulative_multiplier', 'modular_adder', 'multiplier', 'qaoa', 'qft', 'qftentangled', 'qnn', 'qpeexact', 'qpeinexact', 'qwalk', 'randomcircuit', 'rg_qft_multiplier', 'shor', 'vbe_ripple_carry_adder', 'vqe_real_amp', 'vqe_su2', 'vqe_two_local', 'wstate']
level: BenchmarkLevel.ALG, BenchmarkLevel.INDEP, BenchmarkLevel.NATIVEGATES, BenchmarkLevel.MAPPEDcircuit_size: Define the number of qubits in the circuit.target: Target, which can also be instantiated based on gatesets usingget_target_for_gateset(gateset_name)or based on a device usingget_device(device_name). Possible values forgateset_name:
['clifford+t', 'clifford+t+rotations', 'ibm_eagle', 'ibm_falcon', 'ibm_heron', 'ionq_aria', 'ionq_forte', 'iqm', 'quantinuum', 'rigetti']
(required for “nativegates” level)
Possible values for device_name:
['ibm_eagle_127', 'ibm_falcon_127', 'ibm_falcon_27', 'ibm_heron_133', 'ibm_heron_156', 'ionq_aria_25', 'ionq_forte_36', 'iqm_crystal_20', 'iqm_crystal_5', 'iqm_crystal_54', 'quantinuum_h2_56', 'rigetti_ankaa_84']
(required for “mapped” level)
opt_level: Optimization level for"qiskit"(0-3).random_parameters: Assign random parameters to the circuit’s parameters if they exist.generate_mirror_circuit: Generate the mirror version (U @ U.inverse()) of the benchmark.
Native Gate-Set Support¶
So far, MQT Bench supports the following native gatesets:
1: clifford+t → ['id', 'x', 'y', 'z', 'h', 's', 'sdg', 't', 'tdg', 'sx', 'sxdg', 'cx', 'cy', 'cz', 'swap', 'iswap', 'dcx', 'ecr']
2: clifford+t+rotations → ['id', 'x', 'y', 'z', 'h', 's', 'sdg', 't', 'tdg', 'sx', 'sxdg', 'cx', 'cy', 'cz', 'swap', 'iswap', 'dcx', 'ecr', 'rx', 'ry', 'rz']
3: ibm_eagle → ['id', 'x', 'sx', 'rz', 'ecr']
4: ibm_falcon → ['id', 'x', 'sx', 'rz', 'cx']
5: ibm_heron → ['id', 'x', 'sx', 'rz', 'cz']
6: ionq_aria → ['rz', 'gpi', 'gpi2', 'ms', 'measure']
7: ionq_forte → ['rz', 'gpi', 'gpi2', 'zz', 'measure']
8: iqm → ['r', 'cz']
9: quantinuum → ['rx', 'ry', 'rz', 'rzz']
10: rigetti → ['rxpi', 'rxpi2', 'rxpi2dg', 'rz', 'iswap', 'measure']
Device Support¶
So far, MQT Bench supports the following devices:
1: ibm_eagle_127 with 127 qubits
2: ibm_falcon_127 with 127 qubits
3: ibm_falcon_27 with 27 qubits
4: ibm_heron_133 with 133 qubits
5: ibm_heron_156 with 156 qubits
6: ionq_aria_25 with 25 qubits
7: ionq_forte_36 with 36 qubits
8: iqm_crystal_20 with 20 qubits
9: iqm_crystal_5 with 5 qubits
10: iqm_crystal_54 with 54 qubits
11: quantinuum_h2_56 with 56 qubits
12: rigetti_ankaa_84 with 84 qubits
Examples how to use the get_benchmark() method for all four abstraction levels can be found on the Quickstart jupyter notebook.