iqm-benchmarks 2.34__py3-none-any.whl → 2.36__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of iqm-benchmarks might be problematic. Click here for more details.
- iqm/benchmarks/optimization/qscore.py +20 -21
- iqm/benchmarks/quantum_volume/clops.py +8 -21
- {iqm_benchmarks-2.34.dist-info → iqm_benchmarks-2.36.dist-info}/METADATA +1 -1
- {iqm_benchmarks-2.34.dist-info → iqm_benchmarks-2.36.dist-info}/RECORD +7 -7
- {iqm_benchmarks-2.34.dist-info → iqm_benchmarks-2.36.dist-info}/WHEEL +1 -1
- {iqm_benchmarks-2.34.dist-info → iqm_benchmarks-2.36.dist-info}/licenses/LICENSE +0 -0
- {iqm_benchmarks-2.34.dist-info → iqm_benchmarks-2.36.dist-info}/top_level.txt +0 -0
|
@@ -601,7 +601,6 @@ class QScoreBenchmark(Benchmark):
|
|
|
601
601
|
self.session_timestamp = strftime("%Y%m%d-%H%M%S")
|
|
602
602
|
self.execution_timestamp = ""
|
|
603
603
|
self.seed = configuration.seed
|
|
604
|
-
self.qpu_topology = configuration.qpu_topology
|
|
605
604
|
|
|
606
605
|
self.graph_physical: Graph
|
|
607
606
|
self.virtual_nodes: List[Tuple[int, int]]
|
|
@@ -747,10 +746,7 @@ class QScoreBenchmark(Benchmark):
|
|
|
747
746
|
dataset = xr.Dataset()
|
|
748
747
|
self.add_all_meta_to_dataset(dataset)
|
|
749
748
|
|
|
750
|
-
|
|
751
|
-
nqubits = self.backend.num_qubits - 1 # need to leave out the resonator
|
|
752
|
-
else:
|
|
753
|
-
nqubits = self.backend.num_qubits
|
|
749
|
+
nqubits = self.backend.num_qubits
|
|
754
750
|
|
|
755
751
|
if self.choose_qubits_routine == "custom":
|
|
756
752
|
if self.use_virtual_node:
|
|
@@ -778,7 +774,7 @@ class QScoreBenchmark(Benchmark):
|
|
|
778
774
|
graph_list = []
|
|
779
775
|
qubit_set_list = []
|
|
780
776
|
theta_list = []
|
|
781
|
-
## updates the number of qubits to choose for the
|
|
777
|
+
## updates the number of qubits to choose for the graph problem.
|
|
782
778
|
if self.use_virtual_node:
|
|
783
779
|
updated_num_nodes = num_nodes - 1
|
|
784
780
|
else:
|
|
@@ -855,24 +851,30 @@ class QScoreBenchmark(Benchmark):
|
|
|
855
851
|
qcvv_logger.debug(f"This graph instance has no edges.")
|
|
856
852
|
else:
|
|
857
853
|
qcvv_logger.setLevel(logging.WARNING)
|
|
858
|
-
# Account for all-to-all connected backends like
|
|
854
|
+
# Account for all-to-all connected backends like Sirius
|
|
859
855
|
if "move" in backend.architecture.gates:
|
|
860
856
|
# If the circuit is defined on a subset of qubit_set, choose the first qubtis in the set
|
|
861
857
|
active_qubit_set = qubit_set[: len(qc.qubits)]
|
|
862
858
|
# All-to-all coupling map on the active qubits
|
|
863
859
|
effective_coupling_map = [[x, y] for x in active_qubit_set for y in active_qubit_set if x != y]
|
|
864
860
|
else:
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
861
|
+
if self.choose_qubits_routine == "naive":
|
|
862
|
+
active_qubit_set = None
|
|
863
|
+
effective_coupling_map = self.backend.coupling_map
|
|
864
|
+
else:
|
|
865
|
+
active_qubit_set = qubit_set
|
|
866
|
+
effective_coupling_map = self.backend.coupling_map.reduce(active_qubit_set)
|
|
867
|
+
|
|
868
|
+
transpilation_params = {
|
|
869
|
+
"backend": self.backend,
|
|
870
|
+
"qubits": active_qubit_set,
|
|
871
|
+
"coupling_map": effective_coupling_map,
|
|
872
|
+
"qiskit_optim_level": self.qiskit_optim_level,
|
|
873
|
+
"optimize_sqg": self.optimize_sqg,
|
|
874
|
+
"routing_method": self.routing_method,
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
transpiled_qc, _ = perform_backend_transpilation([qc], **transpilation_params)
|
|
876
878
|
|
|
877
879
|
sorted_transpiled_qc_list = {tuple(qubit_set): transpiled_qc}
|
|
878
880
|
# Execute on the backend
|
|
@@ -963,8 +965,6 @@ class QScoreConfiguration(BenchmarkConfigurationBase):
|
|
|
963
965
|
* Default is False.
|
|
964
966
|
mit_shots: (int): Number of shots used in readout error mitigation.
|
|
965
967
|
* Default is 1000.
|
|
966
|
-
qpu_topology: (str): Topology of the QPU, either "crystal" or "star".
|
|
967
|
-
* Default is "crystal".
|
|
968
968
|
"""
|
|
969
969
|
|
|
970
970
|
benchmark: Type[Benchmark] = QScoreBenchmark
|
|
@@ -982,4 +982,3 @@ class QScoreConfiguration(BenchmarkConfigurationBase):
|
|
|
982
982
|
seed: int = 1
|
|
983
983
|
REM: bool = False
|
|
984
984
|
mit_shots: int = 1000
|
|
985
|
-
qpu_topology: str = "crystal"
|
|
@@ -65,7 +65,7 @@ def plot_times(clops_data: xr.Dataset, observations: Dict[int, Dict[str, Dict[st
|
|
|
65
65
|
Figure: the figure.
|
|
66
66
|
"""
|
|
67
67
|
# Define the keys for different categories of times
|
|
68
|
-
job_keys = ["
|
|
68
|
+
job_keys = ["compile_total", "execution_total"]
|
|
69
69
|
total_keys = ["job_total"]
|
|
70
70
|
user_keys = ["user_retrieve_total", "user_submit_total", "assign_parameters_total", "time_transpile"]
|
|
71
71
|
|
|
@@ -98,7 +98,7 @@ def plot_times(clops_data: xr.Dataset, observations: Dict[int, Dict[str, Dict[st
|
|
|
98
98
|
# Plot user keys
|
|
99
99
|
for i, (key, cumulative_value) in enumerate(zip(user_keys, np.cumsum([all_data[k] for k in user_keys]))):
|
|
100
100
|
x = ax1.bar(
|
|
101
|
-
|
|
101
|
+
3 * sep,
|
|
102
102
|
cumulative_value,
|
|
103
103
|
barsize,
|
|
104
104
|
zorder=1 - i / 10,
|
|
@@ -109,22 +109,9 @@ def plot_times(clops_data: xr.Dataset, observations: Dict[int, Dict[str, Dict[st
|
|
|
109
109
|
ax1.bar_label(x, fmt=f"{key.replace('_total', ' ').replace('_', ' ')}: {all_data[key]:.2f}", fontsize=fontsize)
|
|
110
110
|
|
|
111
111
|
# Plot total CLOPS time
|
|
112
|
-
x_t = ax1.bar(
|
|
112
|
+
x_t = ax1.bar(2 * sep, clops_time, barsize, zorder=0, color=(colors[-1], alpha), edgecolor="k")
|
|
113
113
|
ax1.bar_label(x_t, fmt=f"CLOPS time: {clops_time:.2f}", fontsize=fontsize)
|
|
114
114
|
|
|
115
|
-
# Plot total keys
|
|
116
|
-
for i, (key, cumulative_value) in enumerate(zip(total_keys, np.cumsum([all_data[k] for k in total_keys]))):
|
|
117
|
-
x = ax1.bar(
|
|
118
|
-
2 * sep,
|
|
119
|
-
cumulative_value,
|
|
120
|
-
barsize,
|
|
121
|
-
zorder=1 - i / 10,
|
|
122
|
-
label=key,
|
|
123
|
-
color=(colors[len(job_keys) + i], alpha),
|
|
124
|
-
edgecolor="k",
|
|
125
|
-
)
|
|
126
|
-
ax1.bar_label(x, fmt=f"{key.replace('_total', ' ')}: {all_data[key]:.2f}", fontsize=fontsize)
|
|
127
|
-
|
|
128
115
|
# Plot job keys
|
|
129
116
|
for i, (key, cumulative_value) in enumerate(zip(job_keys, np.cumsum([all_data[k] for k in job_keys]))):
|
|
130
117
|
x = ax1.bar(
|
|
@@ -145,8 +132,8 @@ def plot_times(clops_data: xr.Dataset, observations: Dict[int, Dict[str, Dict[st
|
|
|
145
132
|
ax2.set_ylim(-0.2, 100)
|
|
146
133
|
|
|
147
134
|
# Set x-ticks and labels
|
|
148
|
-
time_types = ["Remote (components)", "
|
|
149
|
-
ax1.set_xticks([i * sep + 1 for i in range(
|
|
135
|
+
time_types = ["Remote (components)", "Wall-time (CLOPS)", "Wall-time (all components)"]
|
|
136
|
+
ax1.set_xticks([i * sep + 1 for i in range(3)], time_types, fontsize=fontsize)
|
|
150
137
|
|
|
151
138
|
# Set plot title
|
|
152
139
|
if all_data["clops_h"]["value"] == 0:
|
|
@@ -187,8 +174,8 @@ def retrieve_clops_elapsed_times(job_meta: Dict[str, Dict[str, Any]]) -> Dict[st
|
|
|
187
174
|
job_time_format = "%Y-%m-%dT%H:%M:%S.%f%z" # Is it possible to extract this automatically?
|
|
188
175
|
compile_f = datetime.strptime(x["compile_end"], job_time_format)
|
|
189
176
|
compile_i = datetime.strptime(x["compile_start"], job_time_format)
|
|
190
|
-
submit_f = datetime.strptime(x["submit_end"], job_time_format)
|
|
191
|
-
submit_i = datetime.strptime(x["submit_start"], job_time_format)
|
|
177
|
+
# submit_f = datetime.strptime(x["submit_end"], job_time_format)
|
|
178
|
+
# submit_i = datetime.strptime(x["submit_start"], job_time_format)
|
|
192
179
|
execution_f = datetime.strptime(x["execution_end"], job_time_format)
|
|
193
180
|
execution_i = datetime.strptime(x["execution_start"], job_time_format)
|
|
194
181
|
job_f = datetime.strptime(x["job_end"], job_time_format)
|
|
@@ -197,7 +184,7 @@ def retrieve_clops_elapsed_times(job_meta: Dict[str, Dict[str, Any]]) -> Dict[st
|
|
|
197
184
|
all_job_elapsed[update][batch] = {
|
|
198
185
|
"job_total": job_f - job_i,
|
|
199
186
|
"compile_total": compile_f - compile_i,
|
|
200
|
-
"submit_total": submit_f - submit_i,
|
|
187
|
+
# "submit_total": submit_f - submit_i,
|
|
201
188
|
"execution_total": execution_f - execution_i,
|
|
202
189
|
}
|
|
203
190
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iqm-benchmarks
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.36
|
|
4
4
|
Summary: A package for implementation of Quantum Characterization, Verification and Validation (QCVV) techniques on IQM's hardware at gate level abstraction
|
|
5
5
|
Author-email: IQM Finland Oy <developers@meetiqm.com>, Adrian Auer <adrian.auer@meetiqm.com>, Raphael Brieger <raphael.brieger@meetiqm.com>, Alessio Calzona <alessio.calzona@meetiqm.com>, Pedro Figueroa Romero <pedro.romero@meetiqm.com>, Amin Hosseinkhani <amin.hosseinkhani@meetiqm.com>, Miikka Koistinen <miikka@meetiqm.com>, Nadia Milazzo <nadia.milazzo@meetiqm.com>, Vicente Pina Canelles <vicente.pina@meetiqm.com>, Aniket Rath <aniket.rath@meetiqm.com>, Jami Rönkkö <jami@meetiqm.com>, Stefan Seegerer <stefan.seegerer@meetiqm.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/iqm-finland/iqm-benchmarks
|
|
@@ -14,9 +14,9 @@ iqm/benchmarks/entanglement/__init__.py,sha256=sHVVToRWRCz0LSntk1rQaoSNNeyZLPoiT
|
|
|
14
14
|
iqm/benchmarks/entanglement/ghz.py,sha256=RGA6ynJFsfaCJv0nKccsiIzPk2G-iHHvIeW8LVu30HY,41249
|
|
15
15
|
iqm/benchmarks/entanglement/graph_states.py,sha256=qv6nAgbvm1toSgNGLjBA8DpF9fN7UUlMpPeR_gixMcI,62561
|
|
16
16
|
iqm/benchmarks/optimization/__init__.py,sha256=_ajW_OibYLCtzU5AUv5c2zuuVYn8ZNeZUcUUSIGt51M,747
|
|
17
|
-
iqm/benchmarks/optimization/qscore.py,sha256=
|
|
17
|
+
iqm/benchmarks/optimization/qscore.py,sha256=C7_Vaj_JnjipBJacaa-rhH70Wgct3y1uzPMurZ4wPco,38068
|
|
18
18
|
iqm/benchmarks/quantum_volume/__init__.py,sha256=i-Q4SpDWELBw7frXnxm1j4wJRcxbIyrS5uEK_v06YHo,951
|
|
19
|
-
iqm/benchmarks/quantum_volume/clops.py,sha256=
|
|
19
|
+
iqm/benchmarks/quantum_volume/clops.py,sha256=tmExq6kCaltL8VQsicB_uQ56FoCA8y-rmu1ir4gu5og,31105
|
|
20
20
|
iqm/benchmarks/quantum_volume/quantum_volume.py,sha256=pro7Lz-A5pPpT9UZ8wtXKTyhdWmTjQjRHt4BylDR-3U,36553
|
|
21
21
|
iqm/benchmarks/randomized_benchmarking/__init__.py,sha256=IkKo-7zUChxZZd3my_csQCJfJfZNsV3-JTvdG8uqys4,734
|
|
22
22
|
iqm/benchmarks/randomized_benchmarking/clifford_1q.pkl,sha256=yrmSJqhv7Lb1yqiqU9-2baqTljJPNmTUPQR-AH6GGfc,7800
|
|
@@ -33,7 +33,7 @@ iqm/benchmarks/randomized_benchmarking/interleaved_rb/__init__.py,sha256=sq6MgN_
|
|
|
33
33
|
iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py,sha256=TaR1YFWBhOgm1hmEQzuwLYpp0yl0Xpuo3jAT6YhiXpc,28471
|
|
34
34
|
iqm/benchmarks/randomized_benchmarking/mirror_rb/__init__.py,sha256=jRKbivWCZ3xdO1k0sx-ygC3s5DUkGSModd975PoAtcg,692
|
|
35
35
|
iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py,sha256=n_5gt9636ZDMsM9hC3Zm5qP2bQr2sy41zxGhOh0XMjI,32932
|
|
36
|
-
iqm_benchmarks-2.
|
|
36
|
+
iqm_benchmarks-2.36.dist-info/licenses/LICENSE,sha256=2Ncb40-hqkTil78RPv3-YiJfKaJ8te9USJgliKqIdSY,11558
|
|
37
37
|
mGST/LICENSE,sha256=TtHNq55cUcbglb7uhVudeBLUh_qPdUoAEvU0BBwFz-k,1098
|
|
38
38
|
mGST/README.md,sha256=v_5kw253csHF4-RfE-44KqFmBXIsSMRmOtN0AUPrRxE,5050
|
|
39
39
|
mGST/additional_fns.py,sha256=_SEJ10FRNM7_CroysT8hCLZTfpm6ZhEIDCY5zPTnhjo,31390
|
|
@@ -44,7 +44,7 @@ mGST/optimization.py,sha256=YHwkzIkYvsZOPjclR-BCQWh24jeqjuXp0BB0WX5Lwow,10559
|
|
|
44
44
|
mGST/qiskit_interface.py,sha256=ajx6Zn5FnrX_T7tMP8xnBLyG4c2ddFRm0Fu2_3r1t30,10118
|
|
45
45
|
mGST/reporting/figure_gen.py,sha256=6Xd8vwfy09hLY1YbJY6TRevuMsQSU4MsWqemly3ZO0I,12970
|
|
46
46
|
mGST/reporting/reporting.py,sha256=B8NWfpZrrSmyH7lwZxd0EbZMYLsAGK1YsHRB4D5qXH4,26002
|
|
47
|
-
iqm_benchmarks-2.
|
|
48
|
-
iqm_benchmarks-2.
|
|
49
|
-
iqm_benchmarks-2.
|
|
50
|
-
iqm_benchmarks-2.
|
|
47
|
+
iqm_benchmarks-2.36.dist-info/METADATA,sha256=sd79exivhPvBvVj9Dn2JtIrS80m6DjmOmhWptJppWAI,10823
|
|
48
|
+
iqm_benchmarks-2.36.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
|
|
49
|
+
iqm_benchmarks-2.36.dist-info/top_level.txt,sha256=3G23Z-1LGf-IOzTCUl6QwWqiQ3USz25Zt90Ihq192to,9
|
|
50
|
+
iqm_benchmarks-2.36.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|