iqm-benchmarks 2.20__tar.gz → 2.22__tar.gz
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.
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/CHANGELOG.rst +8 -0
- {iqm_benchmarks-2.20/src/iqm_benchmarks.egg-info → iqm_benchmarks-2.22}/PKG-INFO +2 -2
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/pyproject.toml +8 -6
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/entanglement/ghz.py +1 -1
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/optimization/qscore.py +16 -9
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/readout_mitigation.py +1 -1
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/utils.py +49 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22/src/iqm_benchmarks.egg-info}/PKG-INFO +2 -2
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/tests/test_qscore.py +5 -5
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/tests/test_rb.py +2 -2
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/.github/workflows/main.yml +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/.github/workflows/publish.yml +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/.github/workflows/tag_and_release.yml +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/.gitignore +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/LICENSE +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/MANIFEST.in +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/README.md +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/benchmark_runner.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docbuild +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/API.rst +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/Makefile +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/_static/images/favicon.ico +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/_static/images/logo.png +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/changelog.rst +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/conf.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/development/development.rst +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/development/generate_2qubit_cliffords.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/development/how_to_make_your_own_benchmark.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/devices/devices.rst +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/devices/spark.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/devices/star.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_clifford_rb.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_clops.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_experiment_all.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_ghz.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_ghz_deneb.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_gst.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_interleaved_rb.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_mirror_rb.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_qscore.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_quantum_volume.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_quantum_volume_deneb.ipynb +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/examples.rst +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/index.rst +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/license.rst +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/readme.md +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/format +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/requirements.txt +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/scheduled_experiments/adonis/__init__.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/scheduled_experiments/adonis/weekly.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/setup.cfg +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/__init__.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/benchmark.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/benchmark_definition.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/circuit_containers.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/compressive_gst/__init__.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/compressive_gst/compressive_gst.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/compressive_gst/gst_analysis.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/entanglement/__init__.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/logging_config.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/optimization/__init__.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/quantum_volume/__init__.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/quantum_volume/clops.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/quantum_volume/quantum_volume.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/__init__.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/clifford_1q.pkl +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/clifford_2q.pkl +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/clifford_rb/__init__.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/interleaved_rb/__init__.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/mirror_rb/__init__.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/multi_lmfit.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/randomized_benchmarking_common.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm_benchmarks.egg-info/SOURCES.txt +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm_benchmarks.egg-info/dependency_links.txt +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm_benchmarks.egg-info/requires.txt +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm_benchmarks.egg-info/top_level.txt +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/mGST/LICENSE +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/mGST/README.md +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/mGST/additional_fns.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/mGST/algorithm.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/mGST/compatibility.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/mGST/low_level_jit.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/mGST/optimization.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/mGST/qiskit_interface.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/mGST/reporting/figure_gen.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/mGST/reporting/reporting.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/tag-from-pipeline.sh +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/test +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/tests/test_ghz.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/tests/test_gst.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/tests/test_qv.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/tests/unit/test_benchmark_circuit.py +0 -0
- {iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/update-requirements.py +0 -0
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 2.22
|
|
6
|
+
============
|
|
7
|
+
* Fix for QScore errors when custom_qubits_array is specified.
|
|
8
|
+
|
|
9
|
+
Version 2.21
|
|
10
|
+
============
|
|
11
|
+
* Function to bootstrap counts added to utils file.
|
|
12
|
+
|
|
5
13
|
Version 2.20
|
|
6
14
|
============
|
|
7
15
|
* Standardizes observations for CLOPS and Mirror RB.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: iqm-benchmarks
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.22
|
|
4
4
|
Summary: A package for implementation of Quantum Characterization, Verification and Validation (QCVV) techniques on IQM's hardware at gate level abstraction
|
|
5
|
-
Author-email: IQM Finland Oy <developers@meetiqm.com>,
|
|
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
|
|
7
7
|
Classifier: Development Status :: 4 - Beta
|
|
8
8
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
@@ -15,15 +15,17 @@ dynamic = ["version"]
|
|
|
15
15
|
description = "A package for implementation of Quantum Characterization, Verification and Validation (QCVV) techniques on IQM's hardware at gate level abstraction"
|
|
16
16
|
authors = [
|
|
17
17
|
{name="IQM Finland Oy", email="developers@meetiqm.com"},
|
|
18
|
-
{name="
|
|
19
|
-
{name="Jami Rönkkö", email="jami@meetiqm.com"},
|
|
20
|
-
{name="Pedro Figueroa Romero", email="pedro.romero@meetiqm.com"},
|
|
21
|
-
{name="Vicente Pina Canelles", email="vicente.pina@meetiqm.com"},
|
|
18
|
+
{name="Adrian Auer", email="adrian.auer@meetiqm.com"},
|
|
22
19
|
{name="Raphael Brieger", email="raphael.brieger@meetiqm.com"},
|
|
23
|
-
{name="
|
|
20
|
+
{name="Alessio Calzona", email="alessio.calzona@meetiqm.com"},
|
|
21
|
+
{name="Pedro Figueroa Romero", email="pedro.romero@meetiqm.com"},
|
|
22
|
+
{name="Amin Hosseinkhani", email="amin.hosseinkhani@meetiqm.com"},
|
|
24
23
|
{name="Miikka Koistinen", email="miikka@meetiqm.com"},
|
|
25
|
-
{name="Adrian Auer", email="adrian.auer@meetiqm.com"},
|
|
26
24
|
{name="Nadia Milazzo", email="nadia.milazzo@meetiqm.com"},
|
|
25
|
+
{name="Vicente Pina Canelles", email="vicente.pina@meetiqm.com"},
|
|
26
|
+
{name="Aniket Rath", email="aniket.rath@meetiqm.com"},
|
|
27
|
+
{name="Jami Rönkkö", email="jami@meetiqm.com"},
|
|
28
|
+
{name="Stefan Seegerer", email="stefan.seegerer@meetiqm.com"}
|
|
27
29
|
]
|
|
28
30
|
readme = "README.md"
|
|
29
31
|
classifiers = [
|
|
@@ -682,7 +682,7 @@ class GHZBenchmark(Benchmark):
|
|
|
682
682
|
)
|
|
683
683
|
final_ghz = ghz_native_transpiled
|
|
684
684
|
elif routine == "star":
|
|
685
|
-
ghz
|
|
685
|
+
ghz = generate_ghz_star(qubit_count)
|
|
686
686
|
circuit_group.add_circuit(ghz)
|
|
687
687
|
ghz_native_transpiled, _ = perform_backend_transpilation(
|
|
688
688
|
[ghz],
|
|
@@ -411,8 +411,7 @@ def qscore_analysis(run: BenchmarkRunResult) -> BenchmarkAnalysisResult:
|
|
|
411
411
|
backend_name = dataset.attrs["backend_name"]
|
|
412
412
|
timestamp = dataset.attrs["execution_timestamp"]
|
|
413
413
|
|
|
414
|
-
|
|
415
|
-
min_num_nodes = dataset.attrs["min_num_nodes"]
|
|
414
|
+
nodes_list = dataset.attrs["node_numbers"]
|
|
416
415
|
num_instances: int = dataset.attrs["num_instances"]
|
|
417
416
|
|
|
418
417
|
use_virtual_node: bool = dataset.attrs["use_virtual_node"]
|
|
@@ -420,7 +419,6 @@ def qscore_analysis(run: BenchmarkRunResult) -> BenchmarkAnalysisResult:
|
|
|
420
419
|
num_qaoa_layers = dataset.attrs["num_qaoa_layers"]
|
|
421
420
|
|
|
422
421
|
qscore = 0
|
|
423
|
-
nodes_list = list(range(min_num_nodes, max_num_nodes + 1))
|
|
424
422
|
beta_ratio_list = []
|
|
425
423
|
beta_ratio_std_list = []
|
|
426
424
|
for num_nodes in nodes_list:
|
|
@@ -753,17 +751,26 @@ class QScoreBenchmark(Benchmark):
|
|
|
753
751
|
else:
|
|
754
752
|
nqubits = self.backend.num_qubits
|
|
755
753
|
|
|
756
|
-
if self.
|
|
754
|
+
if self.custom_qubits_array is not None:
|
|
757
755
|
if self.use_virtual_node:
|
|
758
|
-
|
|
756
|
+
node_numbers = [len(qubit_layout)+1 for qubit_layout in self.custom_qubits_array]
|
|
759
757
|
else:
|
|
760
|
-
|
|
758
|
+
node_numbers = [len(qubit_layout) for qubit_layout in self.custom_qubits_array]
|
|
759
|
+
|
|
761
760
|
else:
|
|
762
|
-
max_num_nodes
|
|
761
|
+
if self.max_num_nodes is None or self.max_num_nodes == nqubits + 1:
|
|
762
|
+
if self.use_virtual_node:
|
|
763
|
+
max_num_nodes = nqubits + 1
|
|
764
|
+
else:
|
|
765
|
+
max_num_nodes = nqubits
|
|
766
|
+
else:
|
|
767
|
+
max_num_nodes = self.max_num_nodes
|
|
768
|
+
node_numbers = range(self.min_num_nodes, max_num_nodes + 1)
|
|
763
769
|
|
|
764
|
-
dataset.attrs.update({"max_num_nodes":
|
|
770
|
+
dataset.attrs.update({"max_num_nodes": node_numbers[-1]})
|
|
771
|
+
dataset.attrs.update({"node_numbers": node_numbers})
|
|
765
772
|
|
|
766
|
-
for num_nodes in
|
|
773
|
+
for num_nodes in node_numbers:
|
|
767
774
|
qc_list = []
|
|
768
775
|
qc_transpiled_list: List[QuantumCircuit] = []
|
|
769
776
|
execution_results = []
|
|
@@ -25,7 +25,7 @@ from mthree.exceptions import M3Error
|
|
|
25
25
|
from mthree.mitigation import _job_thread
|
|
26
26
|
from mthree.utils import final_measurement_mapping
|
|
27
27
|
from qiskit import transpile # pylint: disable = no-name-in-module
|
|
28
|
-
from qiskit.providers import
|
|
28
|
+
from qiskit.providers import BackendV1, BackendV2
|
|
29
29
|
|
|
30
30
|
from iqm.benchmarks.logging_config import qcvv_logger
|
|
31
31
|
from iqm.benchmarks.utils import get_iqm_backend, timeit
|
|
@@ -25,6 +25,7 @@ from typing import Any, Dict, Iterable, List, Literal, Optional, Sequence, Tuple
|
|
|
25
25
|
from more_itertools import chunked
|
|
26
26
|
from mthree.utils import final_measurement_mapping
|
|
27
27
|
import numpy as np
|
|
28
|
+
from numpy.random import Generator
|
|
28
29
|
from qiskit import ClassicalRegister, transpile
|
|
29
30
|
from qiskit.converters import circuit_to_dag
|
|
30
31
|
from qiskit.transpiler import CouplingMap
|
|
@@ -65,6 +66,54 @@ def timeit(f):
|
|
|
65
66
|
return wrap
|
|
66
67
|
|
|
67
68
|
|
|
69
|
+
def bootstrap_counts(
|
|
70
|
+
original_counts: Dict[str, int],
|
|
71
|
+
num_bootstrap_samples: int = 100,
|
|
72
|
+
rgen: Optional[Generator] = None,
|
|
73
|
+
include_original_counts: bool = False,
|
|
74
|
+
) -> List[Dict[str, int]]:
|
|
75
|
+
"""Returns num_bootstrap_samples resampled copies of the original_counts.
|
|
76
|
+
|
|
77
|
+
Args:
|
|
78
|
+
original_counts (Dict[str, int]): The original dictionary of counts to bootstrap from.
|
|
79
|
+
num_bootstrap_samples (int): The number of bootstrapping samples to generate.
|
|
80
|
+
* Default is 100.
|
|
81
|
+
rgen (Optional[Generator]): The random number generator.
|
|
82
|
+
* Default is None: assigns numpy's default_rng().
|
|
83
|
+
include_original_counts (bool): Whether to include the original counts in the returned bootstrapped count samples.
|
|
84
|
+
* Default is False.
|
|
85
|
+
Returns:
|
|
86
|
+
List[Dict[str, int]]: A list of bootstrapped counts.
|
|
87
|
+
"""
|
|
88
|
+
if rgen is None:
|
|
89
|
+
rgen = np.random.default_rng()
|
|
90
|
+
|
|
91
|
+
keys = list(original_counts.keys())
|
|
92
|
+
values = list(original_counts.values())
|
|
93
|
+
tot_shots = int(sum(values))
|
|
94
|
+
|
|
95
|
+
# Pre-calculate cumulative sum and create bins
|
|
96
|
+
cumulative_sum = np.cumsum(values)
|
|
97
|
+
bins = np.insert(cumulative_sum, 0, 0)
|
|
98
|
+
|
|
99
|
+
if include_original_counts:
|
|
100
|
+
bs_counts_fast = [original_counts]
|
|
101
|
+
else:
|
|
102
|
+
bs_counts_fast = []
|
|
103
|
+
|
|
104
|
+
for _ in range(num_bootstrap_samples):
|
|
105
|
+
# Generate random integers
|
|
106
|
+
random_integers = rgen.integers(low=0, high=tot_shots, size=tot_shots)
|
|
107
|
+
# Bin the random integers
|
|
108
|
+
binned_integers = np.digitize(random_integers, bins) - 1
|
|
109
|
+
# Count occurrences in each bin
|
|
110
|
+
occurrences = np.bincount(binned_integers, minlength=len(keys))
|
|
111
|
+
# Create dictionary mapping keys to occurrence counts
|
|
112
|
+
bs_counts_fast.append(dict(zip(keys, occurrences)))
|
|
113
|
+
|
|
114
|
+
return bs_counts_fast
|
|
115
|
+
|
|
116
|
+
|
|
68
117
|
@timeit
|
|
69
118
|
def count_2q_layers(circuit_list: List[QuantumCircuit]) -> List[int]:
|
|
70
119
|
"""Calculate the number of layers of parallel 2-qubit gates in a list of circuits.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: iqm-benchmarks
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.22
|
|
4
4
|
Summary: A package for implementation of Quantum Characterization, Verification and Validation (QCVV) techniques on IQM's hardware at gate level abstraction
|
|
5
|
-
Author-email: IQM Finland Oy <developers@meetiqm.com>,
|
|
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
|
|
7
7
|
Classifier: Development Status :: 4 - Beta
|
|
8
8
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"""Tests for Qscore estimation"""
|
|
2
2
|
|
|
3
3
|
from iqm.benchmarks.optimization.qscore import *
|
|
4
|
-
from iqm.qiskit_iqm.fake_backends.
|
|
4
|
+
from iqm.qiskit_iqm.fake_backends.fake_apollo import IQMFakeApollo
|
|
5
5
|
from iqm.qiskit_iqm.fake_backends.fake_deneb import IQMFakeDeneb
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class TestQScore:
|
|
9
|
-
backend =
|
|
9
|
+
backend = IQMFakeApollo()
|
|
10
10
|
qpu_topology = "crystal"
|
|
11
|
-
custom_qubits_array = [[0
|
|
11
|
+
custom_qubits_array = [[0, 1, 3], [0, 1, 2, 3] , [0, 1, 2, 3, 4]]
|
|
12
12
|
|
|
13
13
|
def test_qscore(self):
|
|
14
14
|
EXAMPLE_QSCORE = QScoreConfiguration(
|
|
@@ -17,7 +17,7 @@ class TestQScore:
|
|
|
17
17
|
shots=4,
|
|
18
18
|
calset_id=None, # calibration set ID, default is None
|
|
19
19
|
min_num_nodes=2,
|
|
20
|
-
max_num_nodes=
|
|
20
|
+
max_num_nodes=4,
|
|
21
21
|
use_virtual_node=True,
|
|
22
22
|
use_classically_optimized_angles=True,
|
|
23
23
|
choose_qubits_routine="custom",
|
|
@@ -34,4 +34,4 @@ class TestQScore:
|
|
|
34
34
|
class TestQScoreDeneb(TestQScore):
|
|
35
35
|
backend = IQMFakeDeneb()
|
|
36
36
|
qpu_topology = "star"
|
|
37
|
-
custom_qubits_array = [[1], [1, 2], [1, 2, 3
|
|
37
|
+
custom_qubits_array = [[1], [1, 2], [1, 2, 3, 4], [1, 2, 3, 4, 5]]
|
|
@@ -40,7 +40,7 @@ class TestRB:
|
|
|
40
40
|
EXAMPLE_IRB_1Q = InterleavedRBConfiguration(
|
|
41
41
|
qubits_array=[[1]],
|
|
42
42
|
sequence_lengths=[2 ** (m + 1) - 1 for m in range(4)],
|
|
43
|
-
num_circuit_samples=
|
|
43
|
+
num_circuit_samples=5,
|
|
44
44
|
shots=2**4,
|
|
45
45
|
parallel_execution=True,
|
|
46
46
|
interleaved_gate="RGate",
|
|
@@ -55,7 +55,7 @@ class TestRB:
|
|
|
55
55
|
EXAMPLE_CRB_1Q = CliffordRBConfiguration(
|
|
56
56
|
qubits_array=[[3]],
|
|
57
57
|
sequence_lengths=[2 ** (m + 1) - 1 for m in range(4)],
|
|
58
|
-
num_circuit_samples=
|
|
58
|
+
num_circuit_samples=5,
|
|
59
59
|
shots=2**4,
|
|
60
60
|
calset_id=None,
|
|
61
61
|
parallel_execution=False,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/development/generate_2qubit_cliffords.ipynb
RENAMED
|
File without changes
|
{iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/development/how_to_make_your_own_benchmark.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/docs/examples/example_quantum_volume_deneb.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/compressive_gst/compressive_gst.py
RENAMED
|
File without changes
|
{iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/compressive_gst/gst_analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/quantum_volume/quantum_volume.py
RENAMED
|
File without changes
|
{iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm/benchmarks/randomized_benchmarking/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_benchmarks-2.20 → iqm_benchmarks-2.22}/src/iqm_benchmarks.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|