Error Per Layered Gate (EPLG)#
%load_ext autoreload
%autoreload 2
The autoreload extension is already loaded. To reload it, use:
%reload_ext autoreload
Set IQM Token if using Resonance.#
import os
from iqm.qiskit_iqm import IQMProvider
os.environ["IQM_TOKEN"] = "" # Replace with your token
Choose (or define) a backend#
quantum_computer = "emerald"
iqm_server_url = "https://resonance.meetiqm.com"
provider = IQMProvider(iqm_server_url, quantum_computer = quantum_computer)
backend = provider.get_backend()
# If manually specifying qubit pairs, you can also simply use the following:
#backend="fakeapollo"
Randomized Benchmarking Configuration#
from iqm.benchmarks.randomized_benchmarking.eplg.eplg import *
import numpy as np
EXAMPLE_EPLG = EPLGConfiguration(
# custom_qubits_array=list(backend.coupling_map),
drb_depths=sorted(list(set(np.geomspace(1, 200, num=6, endpoint=True, dtype=int).tolist())), reverse=True),
drb_circuit_samples=25,
shots=2**8,
num_disjoint_layers=2,
# Parameters for a linear chain layer:
chain_length=20,
chain_path_samples=200,
max_hamiltonian_path_tries=100,
iqm_server_url=iqm_server_url,
quantum_computer=quantum_computer
)
Run the experiment#
benchmark_eplg = EPLGBenchmark(backend, EXAMPLE_EPLG)
run_eplg = benchmark_eplg.run()
2026-01-29 15:44:16,284 - iqm.benchmarks.logging_config - INFO - Generating linear chain path
2026-01-29 15:44:16,637 - iqm.benchmarks.logging_config - INFO - Extracting the path that maximizes total 2Q calibration fidelity
2026-01-29 15:44:18,450 - iqm.benchmarks.logging_config - INFO - Clifford dictionaries for both 1 & 2 qubits imported successfully!
2026-01-29 15:44:18,450 - iqm.benchmarks.logging_config - INFO - Executing parallel Direct RB on qubits [(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)] (group 1/2). Will generate and submit all 25 DRB circuits for each depth [200, 69, 24, 8, 2, 1]
2026-01-29 15:44:18,450 - iqm.benchmarks.logging_config - INFO - Depth 200
2026-01-29 15:44:59,368 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [11, 10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36, 28]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:45:28,283 - iqm.benchmarks.logging_config - INFO - Job for depth 200 submitted successfully!
2026-01-29 15:45:28,283 - iqm.benchmarks.logging_config - INFO - Depth 69
2026-01-29 15:45:47,479 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [11, 10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36, 28]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:45:59,758 - iqm.benchmarks.logging_config - INFO - Job for depth 69 submitted successfully!
2026-01-29 15:45:59,759 - iqm.benchmarks.logging_config - INFO - Depth 24
2026-01-29 15:46:08,689 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [11, 10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36, 28]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:46:13,942 - iqm.benchmarks.logging_config - INFO - Job for depth 24 submitted successfully!
2026-01-29 15:46:13,942 - iqm.benchmarks.logging_config - INFO - Depth 8
2026-01-29 15:46:16,674 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [11, 10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36, 28]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:46:18,620 - iqm.benchmarks.logging_config - INFO - Job for depth 8 submitted successfully!
2026-01-29 15:46:18,620 - iqm.benchmarks.logging_config - INFO - Depth 2
2026-01-29 15:46:19,620 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [11, 10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36, 28]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:46:20,416 - iqm.benchmarks.logging_config - INFO - Job for depth 2 submitted successfully!
2026-01-29 15:46:20,426 - iqm.benchmarks.logging_config - INFO - Depth 1
2026-01-29 15:46:20,987 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [11, 10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36, 28]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:46:21,540 - iqm.benchmarks.logging_config - INFO - Job for depth 1 submitted successfully!
2026-01-29 15:46:21,555 - iqm.benchmarks.logging_config - INFO - Executing parallel Direct RB on qubits [(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)] (group 2/2). Will generate and submit all 25 DRB circuits for each depth [200, 69, 24, 8, 2, 1]
2026-01-29 15:46:21,555 - iqm.benchmarks.logging_config - INFO - Depth 200
2026-01-29 15:47:01,352 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:47:30,940 - iqm.benchmarks.logging_config - INFO - Job for depth 200 submitted successfully!
2026-01-29 15:47:30,940 - iqm.benchmarks.logging_config - INFO - Depth 69
2026-01-29 15:47:47,222 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:48:01,508 - iqm.benchmarks.logging_config - INFO - Job for depth 69 submitted successfully!
2026-01-29 15:48:01,509 - iqm.benchmarks.logging_config - INFO - Depth 24
2026-01-29 15:48:15,528 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:48:20,083 - iqm.benchmarks.logging_config - INFO - Job for depth 24 submitted successfully!
2026-01-29 15:48:20,085 - iqm.benchmarks.logging_config - INFO - Depth 8
2026-01-29 15:48:26,039 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:48:28,296 - iqm.benchmarks.logging_config - INFO - Job for depth 8 submitted successfully!
2026-01-29 15:48:28,298 - iqm.benchmarks.logging_config - INFO - Depth 2
2026-01-29 15:48:29,017 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:48:30,143 - iqm.benchmarks.logging_config - INFO - Job for depth 2 submitted successfully!
2026-01-29 15:48:30,145 - iqm.benchmarks.logging_config - INFO - Depth 1
2026-01-29 15:48:30,654 - iqm.benchmarks.logging_config - INFO - Submitting batch with 25 circuits corresponding to qubits [10, 18, 17, 16, 15, 23, 31, 32, 40, 41, 47, 48, 52, 53, 49, 50, 44, 36]
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\iqm\qiskit_iqm\iqm_provider.py:191: UserWarning: Unknown backend option(s): {'calibration_set_id': None}
warnings.warn(f"Unknown backend option(s): {unknown_options}")
2026-01-29 15:48:31,367 - iqm.benchmarks.logging_config - INFO - Job for depth 1 submitted successfully!
2026-01-29 15:48:31,368 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_200
2026-01-29 15:48:34,190 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a37-4d17-7780-a318-77ac71cd8788 to finish...
2026-01-29 15:48:34,873 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)] and depth 200 run to the dataset
2026-01-29 15:48:34,875 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:48:34,943 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_69
2026-01-29 15:48:38,056 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a37-dee8-7a82-80da-484acbd487aa to finish...
2026-01-29 15:48:38,819 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)] and depth 69 run to the dataset
2026-01-29 15:48:38,820 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:48:38,892 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_24
2026-01-29 15:48:39,371 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a38-1611-7023-833d-9d157e03e1ff to finish...
2026-01-29 15:48:40,503 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)] and depth 24 run to the dataset
2026-01-29 15:48:40,504 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:48:40,576 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_8
2026-01-29 15:48:41,675 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a38-283a-7120-9fad-70861cfef00f to finish...
2026-01-29 15:48:42,271 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)] and depth 8 run to the dataset
2026-01-29 15:48:42,272 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:48:42,329 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_2
2026-01-29 15:48:42,472 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a38-30a8-76b1-b20a-8002bb62e2be to finish...
2026-01-29 15:48:42,989 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)] and depth 2 run to the dataset
2026-01-29 15:48:42,990 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:48:43,130 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_1
2026-01-29 15:48:43,252 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a38-3520-7bb2-bce6-3aa0b6c40197 to finish...
2026-01-29 15:48:43,814 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)] and depth 1 run to the dataset
2026-01-29 15:48:43,815 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:48:43,897 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_200
2026-01-29 15:48:46,963 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a39-37e8-7b20-b8cb-7169eb6e0d19 to finish...
2026-01-29 15:48:47,851 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)] and depth 200 run to the dataset
2026-01-29 15:48:47,853 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:48:47,957 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_69
2026-01-29 15:48:49,101 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a39-b8e9-7d02-a92f-c37a77f895ab to finish...
2026-01-29 15:48:49,897 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)] and depth 69 run to the dataset
2026-01-29 15:48:49,899 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:48:50,049 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_24
2026-01-29 15:48:50,563 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a3a-02fb-76e3-b8c9-45858109d52d to finish...
2026-01-29 15:49:02,221 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)] and depth 24 run to the dataset
2026-01-29 15:49:02,223 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:49:02,398 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_8
2026-01-29 15:49:02,996 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a3a-234d-7c71-8c5d-02b21f06708f to finish...
2026-01-29 15:49:06,850 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)] and depth 8 run to the dataset
2026-01-29 15:49:06,852 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:49:07,041 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_2
2026-01-29 15:49:07,239 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a3a-2b4f-7ab3-b7d3-7fdae2f46939 to finish...
2026-01-29 15:49:10,707 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)] and depth 2 run to the dataset
2026-01-29 15:49:10,708 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:49:10,840 - iqm.benchmarks.logging_config - INFO - Retrieving all counts for qubits_[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_1
2026-01-29 15:49:11,026 - iqm.iqm_server_client.iqm_server_client - INFO - Waiting for job 019c0a3a-3041-7cc3-8831-22f15afb43b6 to finish...
2026-01-29 15:49:13,738 - iqm.benchmarks.logging_config - INFO - Adding counts of qubits [(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)] and depth 1 run to the dataset
2026-01-29 15:49:13,740 - iqm.benchmarks.logging_config - INFO - Adding counts to dataset
2026-01-29 15:49:13,915 - iqm.benchmarks.logging_config - INFO - DRB experiment execution concluded!
Perform the analysis#
plt.rcParams['figure.dpi'] = 175
result_eplg = benchmark_eplg.analyze()
2026-01-29 15:51:39,427 - iqm.benchmarks.logging_config - INFO - Post-processing parallel Direct RB on qubits [(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)].
2026-01-29 15:51:39,457 - iqm.benchmarks.logging_config - INFO - Depth 200
2026-01-29 15:51:39,544 - iqm.benchmarks.logging_config - INFO - Depth 69
2026-01-29 15:51:39,594 - iqm.benchmarks.logging_config - INFO - Depth 24
2026-01-29 15:51:39,638 - iqm.benchmarks.logging_config - INFO - Depth 8
2026-01-29 15:51:39,669 - iqm.benchmarks.logging_config - INFO - Depth 2
2026-01-29 15:51:39,696 - iqm.benchmarks.logging_config - INFO - Depth 1
2026-01-29 15:51:42,127 - iqm.benchmarks.logging_config - INFO - Post-processing parallel Direct RB on qubits [(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)].
2026-01-29 15:51:42,146 - iqm.benchmarks.logging_config - INFO - Depth 200
2026-01-29 15:51:42,202 - iqm.benchmarks.logging_config - INFO - Depth 69
2026-01-29 15:51:42,249 - iqm.benchmarks.logging_config - INFO - Depth 24
2026-01-29 15:51:42,291 - iqm.benchmarks.logging_config - INFO - Depth 8
2026-01-29 15:51:42,325 - iqm.benchmarks.logging_config - INFO - Depth 2
2026-01-29 15:51:42,356 - iqm.benchmarks.logging_config - INFO - Depth 1
C:\Users\RaphaelBrieger\.local\share\mamba\envs\benchmarks_new\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Display all the attributes in the dataset
run_eplg.dataset.attrs.keys()
dict_keys(['session_timestamp', 'execution_timestamp', 'backend_configuration_name', 'backend_name', 'benchmark', 'shots', 'quantum_computer', 'max_gates_per_batch', 'max_circuits_per_batch', 'calset_id', 'routing_method', 'physical_layout', 'use_dd', 'active_reset_cycles', 'dd_strategy', 'qubits_array', 'is_eplg', 'parallel_execution', 'depths', 'num_circuit_samples', 'qiskit_optim_level', 'two_qubit_gate_ensembles', 'densities_2q_gates', 'clifford_sqg_probabilities', 'sqg_gate_ensembles', 'parallel_all_0', 0, 'parallel_all_1', 1, 'total_submit_time', 'total_retrieve_time', 'num_qubits', 'qubit_names', 'backend_coupling_map', 'backend_num_qubits', 'drb_depths', 'drb_circuit_samples', 'custom_qubits_array', 'chain_length', 'chain_path_samples', 'num_disjoint_layers', 'max_hamiltonian_path_tries', 'iqm_server_url', 'disjoint_layers', 'edges'])
Inspect all the fidelities and the final EPLG#
for o in result_eplg.observations:
if o.name != "EPLG":
print(f"{o.name} {o.identifier.qubit_indices}: {100*o.value:.2f} +/- {100*o.uncertainty:.2f} %")
else:
print(f"\n{o.name} {o.identifier.qubit_indices}: {o.value:.2e} +/- {o.uncertainty:.2e}")
average_gate_fidelity (11, 10): 99.66 +/- 0.12 %
average_gate_fidelity (18, 17): 99.68 +/- 0.05 %
average_gate_fidelity (16, 15): 98.34 +/- 0.91 %
average_gate_fidelity (23, 31): 99.48 +/- 0.11 %
average_gate_fidelity (32, 40): 99.77 +/- 0.12 %
average_gate_fidelity (41, 47): 99.11 +/- 0.09 %
average_gate_fidelity (48, 52): 100.00 +/- 0.38 %
average_gate_fidelity (53, 49): 99.23 +/- 0.11 %
average_gate_fidelity (50, 44): 99.57 +/- 0.10 %
average_gate_fidelity (36, 28): 98.75 +/- 2.66 %
average_gate_fidelity (10, 18): 98.33 +/- 0.17 %
average_gate_fidelity (17, 16): 98.98 +/- 0.08 %
average_gate_fidelity (15, 23): 94.48 +/- 0.45 %
average_gate_fidelity (31, 32): 96.88 +/- 3.01 %
average_gate_fidelity (40, 41): 99.41 +/- 0.07 %
average_gate_fidelity (47, 48): 98.67 +/- 0.13 %
average_gate_fidelity (52, 53): 98.60 +/- 0.06 %
average_gate_fidelity (49, 50): 98.76 +/- 0.07 %
average_gate_fidelity (44, 36): 94.30 +/- 2.96 %
layer_fidelity (n_qubits=20): 75.23 +/- 3.99 %
eplg (n_qubits=20): 1.49 +/- 0.28 %
Plot a visualization of the selected layers and all the DRB decays#
result_eplg.plot_all()
Inspect a sample circuit (parallel DRB)#
eplg_circ_names = benchmark_eplg.circuits.benchmark_circuits[0].group_names
for x in eplg_circ_names:
print(x)
[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_200
[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_69
[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_24
[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_8
[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_2
[(11, 10), (18, 17), (16, 15), (23, 31), (32, 40), (41, 47), (48, 52), (53, 49), (50, 44), (36, 28)]_depth_1
[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_200
[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_69
[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_24
[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_8
[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_2
[(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_1
circ_group_idx = 6
circ_sample = 6
print(f"Circuit group name: {eplg_circ_names[circ_group_idx]}")
circuit_to_draw = benchmark_eplg.circuits.get_benchmark_circuits_by_name('transpiled_circuits').circuit_groups[circ_group_idx].circuits[circ_sample]
circuit_to_draw.draw(output='mpl', fold=0, idle_wires=False)
Circuit group name: [(10, 18), (17, 16), (15, 23), (31, 32), (40, 41), (47, 48), (52, 53), (49, 50), (44, 36)]_depth_200