iqm-benchmarks 2.23__py3-none-any.whl → 2.25__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/benchmark.py +5 -1
- iqm/benchmarks/compressive_gst/compressive_gst.py +2 -0
- iqm/benchmarks/entanglement/ghz.py +1 -0
- iqm/benchmarks/optimization/qscore.py +1 -0
- iqm/benchmarks/quantum_volume/clops.py +1 -0
- iqm/benchmarks/quantum_volume/quantum_volume.py +3 -2
- iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py +2 -0
- iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py +4 -0
- iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py +1 -0
- iqm/benchmarks/randomized_benchmarking/randomized_benchmarking_common.py +11 -1
- iqm/benchmarks/utils.py +38 -14
- {iqm_benchmarks-2.23.dist-info → iqm_benchmarks-2.25.dist-info}/METADATA +5 -3
- {iqm_benchmarks-2.23.dist-info → iqm_benchmarks-2.25.dist-info}/RECORD +16 -16
- {iqm_benchmarks-2.23.dist-info → iqm_benchmarks-2.25.dist-info}/WHEEL +1 -1
- {iqm_benchmarks-2.23.dist-info → iqm_benchmarks-2.25.dist-info}/LICENSE +0 -0
- {iqm_benchmarks-2.23.dist-info → iqm_benchmarks-2.25.dist-info}/top_level.txt +0 -0
iqm/benchmarks/benchmark.py
CHANGED
|
@@ -51,6 +51,7 @@ class BenchmarkBase(ABC):
|
|
|
51
51
|
self.shots = self.configuration.shots
|
|
52
52
|
self.calset_id = self.configuration.calset_id
|
|
53
53
|
self.max_gates_per_batch = self.configuration.max_gates_per_batch
|
|
54
|
+
self.max_circuits_per_batch = self.configuration.max_circuits_per_batch
|
|
54
55
|
|
|
55
56
|
self.routing_method = self.configuration.routing_method
|
|
56
57
|
self.physical_layout = self.configuration.physical_layout
|
|
@@ -92,6 +93,8 @@ class BenchmarkConfigurationBase(BaseModel):
|
|
|
92
93
|
* Default for all benchmarks is 2**8.
|
|
93
94
|
max_gates_per_batch (Optional[int]): the maximum number of gates per circuit batch.
|
|
94
95
|
* Default for all benchmarks is None.
|
|
96
|
+
max_circuits_per_batch (Optional[int]): the maximum number of circuits per batch.
|
|
97
|
+
* Default for all benchmarks is None.
|
|
95
98
|
calset_id (Optional[str]): the calibration ID to use in circuit execution.
|
|
96
99
|
* Default for all benchmarks is None (uses last available calibration ID).
|
|
97
100
|
routing_method (Literal["basic", "lookahead", "stochastic", "sabre", "none"]): the Qiskit routing method to use in transpilation.
|
|
@@ -100,13 +103,14 @@ class BenchmarkConfigurationBase(BaseModel):
|
|
|
100
103
|
- "fixed": physical layout is constrained during transpilation to the selected initial physical qubits.
|
|
101
104
|
- "batching": physical layout is allowed to use any other physical qubits, and circuits are batched according to final measured qubits.
|
|
102
105
|
* Default for all benchmarks is "fixed".
|
|
103
|
-
|
|
106
|
+
use_dd (bool): Boolean flag determining whether to enable dynamical decoupling during circuit execution.
|
|
104
107
|
* Default: False
|
|
105
108
|
"""
|
|
106
109
|
|
|
107
110
|
benchmark: Type[BenchmarkBase]
|
|
108
111
|
shots: int = 2**8
|
|
109
112
|
max_gates_per_batch: Optional[int] = None
|
|
113
|
+
max_circuits_per_batch: Optional[int] = None
|
|
110
114
|
calset_id: Optional[str] = None
|
|
111
115
|
routing_method: Literal["basic", "lookahead", "stochastic", "sabre", "none"] = "sabre"
|
|
112
116
|
physical_layout: Literal["fixed", "batching"] = "fixed"
|
|
@@ -239,6 +239,7 @@ class CompressiveGST(Benchmark):
|
|
|
239
239
|
self.configuration.shots,
|
|
240
240
|
self.calset_id,
|
|
241
241
|
max_gates_per_batch=self.configuration.max_gates_per_batch,
|
|
242
|
+
max_circuits_per_batch=self.configuration.max_circuits_per_batch,
|
|
242
243
|
circuit_compilation_options=self.circuit_compilation_options,
|
|
243
244
|
)
|
|
244
245
|
# Retrieve
|
|
@@ -255,6 +256,7 @@ class CompressiveGST(Benchmark):
|
|
|
255
256
|
self.configuration.shots,
|
|
256
257
|
self.calset_id,
|
|
257
258
|
max_gates_per_batch=self.configuration.max_gates_per_batch,
|
|
259
|
+
max_circuits_per_batch=self.configuration.max_circuits_per_batch,
|
|
258
260
|
)
|
|
259
261
|
# Retrieve all
|
|
260
262
|
qcvv_logger.info(f"Now executing the corresponding circuit batch")
|
|
@@ -851,6 +851,7 @@ class GHZBenchmark(Benchmark):
|
|
|
851
851
|
self.shots,
|
|
852
852
|
self.calset_id,
|
|
853
853
|
max_gates_per_batch=self.max_gates_per_batch,
|
|
854
|
+
max_circuits_per_batch=self.configuration.max_circuits_per_batch,
|
|
854
855
|
circuit_compilation_options=self.circuit_compilation_options,
|
|
855
856
|
)
|
|
856
857
|
|
|
@@ -881,6 +881,7 @@ class QScoreBenchmark(Benchmark):
|
|
|
881
881
|
self.shots,
|
|
882
882
|
self.calset_id,
|
|
883
883
|
max_gates_per_batch=self.max_gates_per_batch,
|
|
884
|
+
max_circuits_per_batch=self.configuration.max_circuits_per_batch,
|
|
884
885
|
circuit_compilation_options=self.circuit_compilation_options,
|
|
885
886
|
)
|
|
886
887
|
qc_transpiled_list.append(transpiled_qc)
|
|
@@ -565,6 +565,7 @@ class CLOPSBenchmark(Benchmark):
|
|
|
565
565
|
self.num_shots,
|
|
566
566
|
self.calset_id,
|
|
567
567
|
max_gates_per_batch=self.max_gates_per_batch,
|
|
568
|
+
max_circuits_per_batch=self.configuration.max_circuits_per_batch,
|
|
568
569
|
circuit_compilation_options=self.circuit_compilation_options,
|
|
569
570
|
)
|
|
570
571
|
|
|
@@ -26,7 +26,7 @@ from mthree.classes import QuasiCollection
|
|
|
26
26
|
from mthree.utils import expval
|
|
27
27
|
import numpy as np
|
|
28
28
|
from qiskit.circuit.library import QuantumVolume
|
|
29
|
-
from qiskit_aer import
|
|
29
|
+
from qiskit_aer import StatevectorSimulator
|
|
30
30
|
import xarray as xr
|
|
31
31
|
|
|
32
32
|
from iqm.benchmarks.benchmark import BenchmarkConfigurationBase
|
|
@@ -119,7 +119,7 @@ def get_ideal_heavy_outputs(
|
|
|
119
119
|
"""
|
|
120
120
|
simulable_circuits = deepcopy(qc_list)
|
|
121
121
|
ideal_heavy_outputs: List[Dict[str, float]] = []
|
|
122
|
-
ideal_simulator =
|
|
122
|
+
ideal_simulator = StatevectorSimulator()
|
|
123
123
|
|
|
124
124
|
# Separate according to sorted indices
|
|
125
125
|
circuit_batches = {
|
|
@@ -698,6 +698,7 @@ class QuantumVolumeBenchmark(Benchmark):
|
|
|
698
698
|
self.shots,
|
|
699
699
|
self.calset_id,
|
|
700
700
|
max_gates_per_batch=self.max_gates_per_batch,
|
|
701
|
+
max_circuits_per_batch=self.configuration.max_circuits_per_batch,
|
|
701
702
|
circuit_compilation_options=self.circuit_compilation_options,
|
|
702
703
|
)
|
|
703
704
|
# qcvv_logger.info(
|
|
@@ -294,6 +294,7 @@ class CliffordRandomizedBenchmarking(Benchmark):
|
|
|
294
294
|
self.shots,
|
|
295
295
|
self.calset_id,
|
|
296
296
|
self.max_gates_per_batch,
|
|
297
|
+
self.configuration.max_circuits_per_batch,
|
|
297
298
|
)
|
|
298
299
|
)
|
|
299
300
|
qcvv_logger.info(f"Job for sequence length {seq_length} submitted successfully!")
|
|
@@ -353,6 +354,7 @@ class CliffordRandomizedBenchmarking(Benchmark):
|
|
|
353
354
|
self.backend,
|
|
354
355
|
self.calset_id,
|
|
355
356
|
max_gates_per_batch=self.max_gates_per_batch,
|
|
357
|
+
max_circuits_per_batch=self.configuration.max_circuits_per_batch,
|
|
356
358
|
circuit_compilation_options=self.circuit_compilation_options,
|
|
357
359
|
)
|
|
358
360
|
)
|
|
@@ -407,6 +407,7 @@ class InterleavedRandomizedBenchmarking(Benchmark):
|
|
|
407
407
|
self.shots,
|
|
408
408
|
self.calset_id,
|
|
409
409
|
self.max_gates_per_batch,
|
|
410
|
+
self.configuration.max_circuits_per_batch,
|
|
410
411
|
)
|
|
411
412
|
)
|
|
412
413
|
all_rb_jobs["interleaved"].append(
|
|
@@ -418,6 +419,7 @@ class InterleavedRandomizedBenchmarking(Benchmark):
|
|
|
418
419
|
self.shots,
|
|
419
420
|
self.calset_id,
|
|
420
421
|
self.max_gates_per_batch,
|
|
422
|
+
self.configuration.max_circuits_per_batch,
|
|
421
423
|
)
|
|
422
424
|
)
|
|
423
425
|
qcvv_logger.info(f"Both jobs for sequence length {seq_length} submitted successfully!")
|
|
@@ -513,6 +515,7 @@ class InterleavedRandomizedBenchmarking(Benchmark):
|
|
|
513
515
|
backend,
|
|
514
516
|
self.calset_id,
|
|
515
517
|
max_gates_per_batch=self.max_gates_per_batch,
|
|
518
|
+
max_circuits_per_batch=self.configuration.max_circuits_per_batch,
|
|
516
519
|
circuit_compilation_options=self.circuit_compilation_options,
|
|
517
520
|
)
|
|
518
521
|
)
|
|
@@ -524,6 +527,7 @@ class InterleavedRandomizedBenchmarking(Benchmark):
|
|
|
524
527
|
backend,
|
|
525
528
|
self.calset_id,
|
|
526
529
|
max_gates_per_batch=self.max_gates_per_batch,
|
|
530
|
+
max_circuits_per_batch=self.configuration.max_circuits_per_batch,
|
|
527
531
|
circuit_compilation_options=self.circuit_compilation_options,
|
|
528
532
|
)
|
|
529
533
|
)
|
|
@@ -662,6 +662,7 @@ class MirrorRandomizedBenchmarking(Benchmark):
|
|
|
662
662
|
self.shots,
|
|
663
663
|
self.calset_id,
|
|
664
664
|
max_gates_per_batch=self.max_gates_per_batch,
|
|
665
|
+
max_circuits_per_batch=self.configuration.max_circuits_per_batch,
|
|
665
666
|
circuit_compilation_options=self.circuit_compilation_options,
|
|
666
667
|
)
|
|
667
668
|
mrb_submit_results = {
|
|
@@ -439,6 +439,7 @@ def submit_parallel_rb_job(
|
|
|
439
439
|
shots: int,
|
|
440
440
|
calset_id: Optional[str],
|
|
441
441
|
max_gates_per_batch: Optional[str],
|
|
442
|
+
max_circuits_per_batch: Optional[int],
|
|
442
443
|
) -> Dict[str, Any]:
|
|
443
444
|
"""Submit fixed-depth parallel MRB jobs for execution in the specified IQMBackend
|
|
444
445
|
Args:
|
|
@@ -449,6 +450,7 @@ def submit_parallel_rb_job(
|
|
|
449
450
|
shots (int): the number of shots to submit the job
|
|
450
451
|
calset_id (Optional[str]): the calibration identifier
|
|
451
452
|
max_gates_per_batch (Optional[str]): the maximum number of gates per batch to submit the job
|
|
453
|
+
max_circuits_per_batch (Optional[int]): the maximum number of circuits per batch to submit the job.
|
|
452
454
|
Returns:
|
|
453
455
|
Dict with qubit layout, submitted job objects, type (vanilla/DD) and submission time
|
|
454
456
|
"""
|
|
@@ -456,7 +458,12 @@ def submit_parallel_rb_job(
|
|
|
456
458
|
# Send to execute on backend
|
|
457
459
|
# pylint: disable=unbalanced-tuple-unpacking
|
|
458
460
|
execution_jobs, time_submit = submit_execute(
|
|
459
|
-
sorted_transpiled_circuit_dicts,
|
|
461
|
+
sorted_transpiled_circuit_dicts,
|
|
462
|
+
backend_arg,
|
|
463
|
+
shots,
|
|
464
|
+
calset_id,
|
|
465
|
+
max_gates_per_batch=max_gates_per_batch,
|
|
466
|
+
max_circuits_per_batch=max_circuits_per_batch,
|
|
460
467
|
)
|
|
461
468
|
rb_submit_results = {
|
|
462
469
|
"qubits": qubits_array,
|
|
@@ -474,6 +481,7 @@ def submit_sequential_rb_jobs(
|
|
|
474
481
|
backend_arg: str | IQMBackendBase,
|
|
475
482
|
calset_id: Optional[str] = None,
|
|
476
483
|
max_gates_per_batch: Optional[int] = None,
|
|
484
|
+
max_circuits_per_batch: Optional[int] = None,
|
|
477
485
|
circuit_compilation_options: Optional[CircuitCompilationOptions] = None,
|
|
478
486
|
) -> List[Dict[str, Any]]:
|
|
479
487
|
"""Submit sequential RB jobs for execution in the specified IQMBackend
|
|
@@ -484,6 +492,7 @@ def submit_sequential_rb_jobs(
|
|
|
484
492
|
backend_arg (IQMBackendBase): the IQM backend to submit the job
|
|
485
493
|
calset_id (Optional[str]): the calibration identifier
|
|
486
494
|
max_gates_per_batch (Optional[int]): the maximum number of gates per batch
|
|
495
|
+
max_circuits_per_batch (Optional[int]): the maximum number of circuits per batch
|
|
487
496
|
circuit_compilation_options (Optional[CircuitCompilationOptions]): Compilation options passed to submit_execute
|
|
488
497
|
Returns:
|
|
489
498
|
Dict with qubit layout, submitted job objects, type (vanilla/DD) and submission time
|
|
@@ -504,6 +513,7 @@ def submit_sequential_rb_jobs(
|
|
|
504
513
|
shots,
|
|
505
514
|
calset_id,
|
|
506
515
|
max_gates_per_batch,
|
|
516
|
+
max_circuits_per_batch=max_circuits_per_batch,
|
|
507
517
|
circuit_compilation_options=circuit_compilation_options,
|
|
508
518
|
)
|
|
509
519
|
rb_submit_results[depth] = {
|
iqm/benchmarks/utils.py
CHANGED
|
@@ -503,6 +503,7 @@ def submit_execute(
|
|
|
503
503
|
shots: int,
|
|
504
504
|
calset_id: Optional[str] = None,
|
|
505
505
|
max_gates_per_batch: Optional[int] = None,
|
|
506
|
+
max_circuits_per_batch: Optional[int] = None,
|
|
506
507
|
circuit_compilation_options: Optional[CircuitCompilationOptions] = None,
|
|
507
508
|
) -> List[IQMJob]:
|
|
508
509
|
"""Submit for execute a list of quantum circuits on the specified Backend.
|
|
@@ -511,10 +512,15 @@ def submit_execute(
|
|
|
511
512
|
sorted_transpiled_qc_list (Dict[Tuple, List[QuantumCircuit]]): the list of quantum circuits to be executed.
|
|
512
513
|
backend (IQMBackendBase): the backend to execute the circuits on.
|
|
513
514
|
shots (int): the number of shots per circuit.
|
|
514
|
-
calset_id (Optional[str]): the calibration set ID
|
|
515
|
-
|
|
515
|
+
calset_id (Optional[str]): the calibration set ID.
|
|
516
|
+
* Default is None: uses the latest calibration ID.
|
|
517
|
+
max_gates_per_batch (Optional[int]): the maximum number of gates per batch sent to the backend, used to make manageable batches.
|
|
518
|
+
* Default is None.
|
|
519
|
+
max_circuits_per_batch (Optional[int]): the maximum number of circuits per batch sent to the backend, used to make manageable batches.
|
|
520
|
+
* Default is None.
|
|
516
521
|
circuit_compilation_options (CircuitCompilationOptions): Ability to pass a compilation options object,
|
|
517
522
|
enabling execution with dynamical decoupling, among other options - see qiskit-iqm documentation.
|
|
523
|
+
* Default is None.
|
|
518
524
|
Returns:
|
|
519
525
|
List[IQMJob]: the IQMJob objects of the executed circuits.
|
|
520
526
|
|
|
@@ -530,23 +536,41 @@ def submit_execute(
|
|
|
530
536
|
f"Submitting batch with {len(sorted_transpiled_qc_list[k])} circuits corresponding to qubits {list(k)}"
|
|
531
537
|
)
|
|
532
538
|
# Divide into batches according to maximum gate count per batch
|
|
533
|
-
if max_gates_per_batch is None:
|
|
539
|
+
if max_gates_per_batch is None and max_circuits_per_batch is None:
|
|
534
540
|
jobs = backend.run(sorted_transpiled_qc_list[k], shots=shots, calibration_set_id=calset_id)
|
|
535
541
|
final_jobs.append(jobs)
|
|
542
|
+
|
|
536
543
|
else:
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
544
|
+
if max_gates_per_batch is None and max_circuits_per_batch is not None:
|
|
545
|
+
restriction = "max_circuits_per_batch"
|
|
546
|
+
batching_size = max_circuits_per_batch
|
|
547
|
+
|
|
548
|
+
elif max_circuits_per_batch is None and max_gates_per_batch is not None:
|
|
549
|
+
restriction = "max_gates_per_batch"
|
|
550
|
+
# Calculate average gate count per quantum circuit
|
|
551
|
+
avg_gates_per_qc = sum(sum(qc.count_ops().values()) for qc in sorted_transpiled_qc_list[k]) / len(
|
|
552
|
+
sorted_transpiled_qc_list[k]
|
|
553
|
+
)
|
|
554
|
+
batching_size = max(1, floor(max_gates_per_batch / avg_gates_per_qc))
|
|
555
|
+
|
|
556
|
+
else: # Both are not None - select the one rendering the smallest batches.
|
|
557
|
+
# Calculate average gate count per quantum circuit
|
|
558
|
+
avg_gates_per_qc = sum(sum(qc.count_ops().values()) for qc in sorted_transpiled_qc_list[k]) / len(
|
|
559
|
+
sorted_transpiled_qc_list[k]
|
|
560
|
+
)
|
|
561
|
+
qcvv_logger.warning(
|
|
562
|
+
"Both max_gates_per_batch and max_circuits_per_batch are not None. Selecting the one giving the smallest batches."
|
|
546
563
|
)
|
|
547
|
-
|
|
564
|
+
batching_size = min(max_circuits_per_batch, max(1, floor(max_gates_per_batch / avg_gates_per_qc)))
|
|
565
|
+
if batching_size == max_circuits_per_batch:
|
|
566
|
+
restriction = "max_circuits_per_batch"
|
|
567
|
+
else:
|
|
568
|
+
restriction = "max_gates_per_batch"
|
|
569
|
+
|
|
570
|
+
final_batch_jobs = []
|
|
571
|
+
for index, qc_batch in enumerate(chunked(sorted_transpiled_qc_list[k], batching_size)):
|
|
548
572
|
qcvv_logger.info(
|
|
549
|
-
f"
|
|
573
|
+
f"{restriction} restriction: submitting subbatch #{index + 1} with {len(qc_batch)} circuits corresponding to qubits {list(k)}"
|
|
550
574
|
)
|
|
551
575
|
batch_jobs = backend.run(
|
|
552
576
|
qc_batch,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: iqm-benchmarks
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.25
|
|
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
|
|
@@ -16,6 +16,7 @@ Requires-Dist: matplotlib<4,>=3.6.3
|
|
|
16
16
|
Requires-Dist: more-itertools<11.0.0,>=10.1.0
|
|
17
17
|
Requires-Dist: mthree<2.7,>=2.6
|
|
18
18
|
Requires-Dist: networkx<4.0,>=3.3
|
|
19
|
+
Requires-Dist: rustworkx>=0.15.1
|
|
19
20
|
Requires-Dist: numpy<2.0,>=1.25.2
|
|
20
21
|
Requires-Dist: qiskit<2.0,>=1.0
|
|
21
22
|
Requires-Dist: qiskit-iqm<16.0,>=15.1
|
|
@@ -193,7 +194,7 @@ EXAMPLE_MRB = MirrorRBConfiguration(
|
|
|
193
194
|
)
|
|
194
195
|
|
|
195
196
|
EXAMPLE_QV = QuantumVolumeConfiguration(
|
|
196
|
-
num_circuits=
|
|
197
|
+
num_circuits=800,
|
|
197
198
|
shots=2**8,
|
|
198
199
|
calset_id=None,
|
|
199
200
|
num_sigmas=2,
|
|
@@ -203,7 +204,8 @@ EXAMPLE_QV = QuantumVolumeConfiguration(
|
|
|
203
204
|
optimize_sqg=True,
|
|
204
205
|
routing_method="sabre",
|
|
205
206
|
physical_layout="fixed",
|
|
206
|
-
|
|
207
|
+
max_circuits_per_batch=500,
|
|
208
|
+
max_gates_per_batch=60_000, # Will be used if it renders a smaller max batch size than max_circuits_per_batch
|
|
207
209
|
rem=True,
|
|
208
210
|
mit_shots=1_000,
|
|
209
211
|
)
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
iqm/benchmarks/__init__.py,sha256=8SRHlADqZjlP8PtbKTMvu-ejpcEZkW8cPmgW8GVKJg8,2638
|
|
2
|
-
iqm/benchmarks/benchmark.py,sha256=
|
|
2
|
+
iqm/benchmarks/benchmark.py,sha256=3E7g7RQjCIGIpSI1gOSrI3V9SAVs-XEOMrPgToK_7vw,4972
|
|
3
3
|
iqm/benchmarks/benchmark_definition.py,sha256=e4xe0wlWKZqj48_6-zTglMaMeoiA9aGkHrrSgoCfPkM,11271
|
|
4
4
|
iqm/benchmarks/circuit_containers.py,sha256=anEtZEsodYqOX-34oZRmuKGeEpp_VfgG5045Mz4-4hI,7562
|
|
5
5
|
iqm/benchmarks/logging_config.py,sha256=U7olP5Kr75AcLJqNODf9VBhJLVqIvA4AYR6J39D5rww,1052
|
|
6
6
|
iqm/benchmarks/readout_mitigation.py,sha256=Q2SOGWTNgmklOYkNxepAaSaXlxSj0QQyymYY1bOkT8A,11756
|
|
7
|
-
iqm/benchmarks/utils.py,sha256=
|
|
7
|
+
iqm/benchmarks/utils.py,sha256=3k3YkLfqHByedVlnSRCeKnt65J60msylGR18mz8sYAA,33435
|
|
8
8
|
iqm/benchmarks/compressive_gst/__init__.py,sha256=LneifgYXtcwo2jcXo7GdUEHL6_peipukShhkrdaTRCA,929
|
|
9
|
-
iqm/benchmarks/compressive_gst/compressive_gst.py,sha256=
|
|
9
|
+
iqm/benchmarks/compressive_gst/compressive_gst.py,sha256=G9vw5esrSwTVFuFNzL-Oyb1vYuA-HKmdnmnfgV74L54,25459
|
|
10
10
|
iqm/benchmarks/compressive_gst/gst_analysis.py,sha256=2qY46e-euAcdThcits_Wo7hGb0m69mDZY0d1Qv_wq4M,36104
|
|
11
11
|
iqm/benchmarks/entanglement/__init__.py,sha256=9T7prOwqMmFWdb4t6ETAHZXKK5o6FvU2DvVb6WhNi-U,682
|
|
12
|
-
iqm/benchmarks/entanglement/ghz.py,sha256=
|
|
12
|
+
iqm/benchmarks/entanglement/ghz.py,sha256=jSPcdFf1Xsq09EJXKCVHzNXjQIdAoDg859279wKGjaQ,41075
|
|
13
13
|
iqm/benchmarks/optimization/__init__.py,sha256=_ajW_OibYLCtzU5AUv5c2zuuVYn8ZNeZUcUUSIGt51M,747
|
|
14
|
-
iqm/benchmarks/optimization/qscore.py,sha256=
|
|
14
|
+
iqm/benchmarks/optimization/qscore.py,sha256=59iGjk7foCHlYRs0j8ZVFvvxnEGhr4u2SSpOW3TLNU4,38047
|
|
15
15
|
iqm/benchmarks/quantum_volume/__init__.py,sha256=i-Q4SpDWELBw7frXnxm1j4wJRcxbIyrS5uEK_v06YHo,951
|
|
16
|
-
iqm/benchmarks/quantum_volume/clops.py,sha256=
|
|
17
|
-
iqm/benchmarks/quantum_volume/quantum_volume.py,sha256=
|
|
16
|
+
iqm/benchmarks/quantum_volume/clops.py,sha256=xlziaxjhJUNyHjBCMzMLeJ9PcFNBtDO7urKvCTBb4sI,31471
|
|
17
|
+
iqm/benchmarks/quantum_volume/quantum_volume.py,sha256=4ll3R8AX-BA599TEaMBzE2rJtAzHLtCkq8CaSkJfA0Y,36626
|
|
18
18
|
iqm/benchmarks/randomized_benchmarking/__init__.py,sha256=IkKo-7zUChxZZd3my_csQCJfJfZNsV3-JTvdG8uqys4,734
|
|
19
19
|
iqm/benchmarks/randomized_benchmarking/clifford_1q.pkl,sha256=vvSd0pRWxtzyirohO9yf_58mjevkc2-pbuWIEb-4gaw,46928
|
|
20
20
|
iqm/benchmarks/randomized_benchmarking/clifford_2q.pkl,sha256=ZipqU3crPhz2T35qGFgB4GvMyoi_7pnu8NqW5ZP8NXg,90707258
|
|
21
21
|
iqm/benchmarks/randomized_benchmarking/multi_lmfit.py,sha256=Se1ygR4mXn_2_P82Ch31KBnCmY-g_A9NKzE9Ir8nEvw,3247
|
|
22
|
-
iqm/benchmarks/randomized_benchmarking/randomized_benchmarking_common.py,sha256=
|
|
22
|
+
iqm/benchmarks/randomized_benchmarking/randomized_benchmarking_common.py,sha256=6sOGPoeJFVCrvTVhDjxbJPrD728pXTzbhuApEgQH1rc,42304
|
|
23
23
|
iqm/benchmarks/randomized_benchmarking/clifford_rb/__init__.py,sha256=bTDA156LAl7OLGcMec--1nzDrV1XpPRVq3CquTmucgE,677
|
|
24
|
-
iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py,sha256=
|
|
24
|
+
iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py,sha256=ksa-R8CMDwXniVNvPky5pogCDmifOqjHd5KNEqGzujs,18560
|
|
25
25
|
iqm/benchmarks/randomized_benchmarking/interleaved_rb/__init__.py,sha256=sq6MgN_hwlpkOj10vyCU4e6eKSX-oLcF2L9na6W2Gt4,681
|
|
26
|
-
iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py,sha256=
|
|
26
|
+
iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py,sha256=lhv8703QJY5j-CUMgAyG9RxVhQKrGljejJaxL5GbILg,28442
|
|
27
27
|
iqm/benchmarks/randomized_benchmarking/mirror_rb/__init__.py,sha256=ZekEqI_89nXzGO1vjM-b5Uwwicy59M4fYHXfA-f0MIg,674
|
|
28
|
-
iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py,sha256=
|
|
28
|
+
iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py,sha256=X5rcmCePbVZ9tsMmh8xw3pTskdMKuHrqW_-pGkX0klg,34982
|
|
29
29
|
mGST/LICENSE,sha256=TtHNq55cUcbglb7uhVudeBLUh_qPdUoAEvU0BBwFz-k,1098
|
|
30
30
|
mGST/README.md,sha256=v_5kw253csHF4-RfE-44KqFmBXIsSMRmOtN0AUPrRxE,5050
|
|
31
31
|
mGST/additional_fns.py,sha256=_SEJ10FRNM7_CroysT8hCLZTfpm6ZhEIDCY5zPTnhjo,31390
|
|
@@ -36,8 +36,8 @@ mGST/optimization.py,sha256=YHwkzIkYvsZOPjclR-BCQWh24jeqjuXp0BB0WX5Lwow,10559
|
|
|
36
36
|
mGST/qiskit_interface.py,sha256=ajx6Zn5FnrX_T7tMP8xnBLyG4c2ddFRm0Fu2_3r1t30,10118
|
|
37
37
|
mGST/reporting/figure_gen.py,sha256=6Xd8vwfy09hLY1YbJY6TRevuMsQSU4MsWqemly3ZO0I,12970
|
|
38
38
|
mGST/reporting/reporting.py,sha256=B8NWfpZrrSmyH7lwZxd0EbZMYLsAGK1YsHRB4D5qXH4,26002
|
|
39
|
-
iqm_benchmarks-2.
|
|
40
|
-
iqm_benchmarks-2.
|
|
41
|
-
iqm_benchmarks-2.
|
|
42
|
-
iqm_benchmarks-2.
|
|
43
|
-
iqm_benchmarks-2.
|
|
39
|
+
iqm_benchmarks-2.25.dist-info/LICENSE,sha256=2Ncb40-hqkTil78RPv3-YiJfKaJ8te9USJgliKqIdSY,11558
|
|
40
|
+
iqm_benchmarks-2.25.dist-info/METADATA,sha256=ietRHvwVJDYDtSCZjRtPSLjPjLvq0-4jU7TFZiC9Aa0,10533
|
|
41
|
+
iqm_benchmarks-2.25.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
|
|
42
|
+
iqm_benchmarks-2.25.dist-info/top_level.txt,sha256=3G23Z-1LGf-IOzTCUl6QwWqiQ3USz25Zt90Ihq192to,9
|
|
43
|
+
iqm_benchmarks-2.25.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|