iqm-benchmarks 1.9__tar.gz → 1.11__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.
Potentially problematic release.
This version of iqm-benchmarks might be problematic. Click here for more details.
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/.github/workflows/publish.yml +33 -1
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/.gitignore +2 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/CHANGELOG.rst +8 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/PKG-INFO +23 -13
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/README.md +9 -3
- iqm_benchmarks-1.11/docs/API.rst +9 -0
- iqm_benchmarks-1.11/docs/Makefile +20 -0
- iqm_benchmarks-1.11/docs/_static/images/favicon.ico +0 -0
- iqm_benchmarks-1.11/docs/_templates/autosummary-class-template.rst +30 -0
- iqm_benchmarks-1.11/docs/_templates/autosummary-module-template.rst +75 -0
- iqm_benchmarks-1.11/docs/changelog.rst +2 -0
- iqm_benchmarks-1.11/docs/conf.py +169 -0
- iqm_benchmarks-1.11/docs/index.rst +32 -0
- iqm_benchmarks-1.11/docs/license.rst +8 -0
- iqm_benchmarks-1.11/docs/readme.md +2 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/pyproject.toml +14 -9
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/benchmark_definition.py +1 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/compressive_gst/compressive_gst.py +1 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/entanglement/ghz.py +5 -3
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm_benchmarks.egg-info/PKG-INFO +23 -13
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm_benchmarks.egg-info/SOURCES.txt +10 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm_benchmarks.egg-info/requires.txt +14 -9
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/tox.ini +13 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/.github/workflows/main.yml +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/.github/workflows/tag_and_release.yml +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/LICENSE +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/benchmark_runner.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/example_clifford_rb.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/example_clops.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/example_experiment_all.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/example_ghz.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/example_gst.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/example_interleaved_rb.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/example_mirror_rb.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/example_qscore.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/example_quantum_volume.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/generate_2qubit_cliffords.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/examples/how_to_make_your_own_benchmark.ipynb +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/scheduled_experiments/adonis/__init__.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/scheduled_experiments/adonis/weekly.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/setup.cfg +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/__init__.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/benchmark.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/benchmark_experiment.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/compressive_gst/__init__.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/compressive_gst/gst_analysis.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/entanglement/__init__.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/logging_config.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/optimization/__init__.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/optimization/qscore.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/quantum_volume/__init__.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/quantum_volume/clops.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/quantum_volume/quantum_volume.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/__init__.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/clifford_1q.pkl +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/clifford_2q.pkl +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/clifford_rb/__init__.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/clifford_rb/clifford_rb.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/interleaved_rb/__init__.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/interleaved_rb/interleaved_rb.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/mirror_rb/__init__.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/mirror_rb/mirror_rb.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/multi_lmfit.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/randomized_benchmarking_common.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/readout_mitigation.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/utils.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm_benchmarks.egg-info/dependency_links.txt +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm_benchmarks.egg-info/top_level.txt +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/mGST/LICENSE +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/mGST/README.md +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/mGST/additional_fns.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/mGST/algorithm.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/mGST/compatibility.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/mGST/low_level_jit.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/mGST/optimization.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/mGST/qiskit_interface.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/mGST/reporting/figure_gen.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/mGST/reporting/reporting.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/tag-from-pipeline.sh +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/tests/test_ghz.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/tests/test_gst.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/tests/test_qscore.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/tests/test_qv.py +0 -0
- {iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/tests/test_rb.py +0 -0
|
@@ -46,4 +46,36 @@ jobs:
|
|
|
46
46
|
- name: Publish distribution packages to PyPI
|
|
47
47
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
48
48
|
with:
|
|
49
|
-
attestations: false
|
|
49
|
+
attestations: false
|
|
50
|
+
|
|
51
|
+
publish_docs:
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
|
|
54
|
+
steps:
|
|
55
|
+
- uses: actions/checkout@v4
|
|
56
|
+
with:
|
|
57
|
+
fetch-depth: 0
|
|
58
|
+
- name: Setup Python
|
|
59
|
+
uses: actions/setup-python@v5
|
|
60
|
+
with:
|
|
61
|
+
python-version: '3.11'
|
|
62
|
+
- name: Checkout latest tagged commit
|
|
63
|
+
run: |
|
|
64
|
+
git checkout $(git describe --tags --abbrev=0)
|
|
65
|
+
- name: Install dependencies
|
|
66
|
+
run: |
|
|
67
|
+
python -m pip install --upgrade pip
|
|
68
|
+
pip install -e ".[develop]"
|
|
69
|
+
sudo apt-get install graphviz
|
|
70
|
+
- name: Build docs
|
|
71
|
+
run: |
|
|
72
|
+
tox -e docs
|
|
73
|
+
touch build/sphinx/html/.nojekyll # allow underscores in URL path
|
|
74
|
+
# remove unnecessary build files
|
|
75
|
+
sudo rm -rf build/sphinx/html/.doctrees
|
|
76
|
+
- name: Publish to gh-pages
|
|
77
|
+
uses: JamesIves/github-pages-deploy-action@4.1.4
|
|
78
|
+
with:
|
|
79
|
+
branch: gh-pages
|
|
80
|
+
folder: build/sphinx/html
|
|
81
|
+
force: false
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 1.11
|
|
6
|
+
===========
|
|
7
|
+
* Relaxes dependencies to allow for ranges.
|
|
8
|
+
|
|
9
|
+
Version 1.10
|
|
10
|
+
===========
|
|
11
|
+
* Added API docs building and publishing.
|
|
12
|
+
|
|
5
13
|
Version 1.9
|
|
6
14
|
===========
|
|
7
15
|
* Fixed bug (overwriting observations) in Quantum Volume.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-benchmarks
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.11
|
|
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>, Aniket Rath <aniket.rath@meetiqm.com>, Jami Rönkkö <jami@meetiqm.com>, Pedro Figueroa Romero <pedro.romero@meetiqm.com>, Vicente Pina Canelles <vicente.pina@meetiqm.com>, Raphael Brieger <raphael.brieger@meetiqm.com>, Stefan Seegerer <stefan.seegerer@meetiqm.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/iqm-finland/iqm-benchmarks
|
|
@@ -13,17 +13,17 @@ Description-Content-Type: text/markdown
|
|
|
13
13
|
License-File: LICENSE
|
|
14
14
|
Requires-Dist: lmfit>=1.2
|
|
15
15
|
Requires-Dist: matplotlib<4,>=3.6.3
|
|
16
|
-
Requires-Dist: more-itertools
|
|
16
|
+
Requires-Dist: more-itertools<11.0.0,>=10.1.0
|
|
17
17
|
Requires-Dist: mthree<2.7,>=2.6
|
|
18
|
-
Requires-Dist: networkx
|
|
18
|
+
Requires-Dist: networkx<4.0,>=3.3
|
|
19
19
|
Requires-Dist: numpy<2.0,>=1.25.2
|
|
20
|
-
Requires-Dist: qiskit
|
|
21
|
-
Requires-Dist: qiskit-iqm
|
|
22
|
-
Requires-Dist: scikit-optimize
|
|
23
|
-
Requires-Dist: tabulate
|
|
24
|
-
Requires-Dist: uncertainties
|
|
25
|
-
Requires-Dist: pycurl
|
|
26
|
-
Requires-Dist: xarray
|
|
20
|
+
Requires-Dist: qiskit<2.0,>=1.0
|
|
21
|
+
Requires-Dist: qiskit-iqm<16.0,>=15.1
|
|
22
|
+
Requires-Dist: scikit-optimize<0.11.0,>=0.10.2
|
|
23
|
+
Requires-Dist: tabulate<1.0.0,>=0.9.0
|
|
24
|
+
Requires-Dist: uncertainties<3.3.0,>=3.2.2
|
|
25
|
+
Requires-Dist: pycurl<8.0,>=7.45.3
|
|
26
|
+
Requires-Dist: xarray<2025.0.0,>=2024.6.0
|
|
27
27
|
Requires-Dist: types-pycurl
|
|
28
28
|
Provides-Extra: develop
|
|
29
29
|
Requires-Dist: tox==4.16.0; extra == "develop"
|
|
@@ -45,6 +45,10 @@ Requires-Dist: pytest-cov==4.1.0; extra == "test"
|
|
|
45
45
|
Requires-Dist: pytest-isort==3.1.0; extra == "test"
|
|
46
46
|
Requires-Dist: pytest-mypy==0.10.3; extra == "test"
|
|
47
47
|
Requires-Dist: pytest-pylint==0.21.0; extra == "test"
|
|
48
|
+
Provides-Extra: docs
|
|
49
|
+
Requires-Dist: sphinx==7.2.6; extra == "docs"
|
|
50
|
+
Requires-Dist: sphinx-book-theme==1.1.2; extra == "docs"
|
|
51
|
+
Requires-Dist: myst-parser<5,>=4.0.0; extra == "docs"
|
|
48
52
|
|
|
49
53
|
# IQM Benchmarks
|
|
50
54
|
|
|
@@ -52,7 +56,7 @@ IQM Benchmarks is a suite of Quantum Characterization, Verification, and Validat
|
|
|
52
56
|
|
|
53
57
|
|
|
54
58
|
Below is a list of the benchmarks currently available in the suite:
|
|
55
|
-
* Gates / Layers:
|
|
59
|
+
* Gates / Layers:
|
|
56
60
|
- Standard Clifford Randomized Benchmarking [[Phys. Rev. A 85, 042311](https://journals.aps.org/pra/abstract/10.1103/PhysRevA.85.042311) (2012)]
|
|
57
61
|
- Interleaved Randomized Benchmarking [[Phys. Rev. Lett. 109, 080505](https://doi.org/10.1103/PhysRevLett.109.080505) (2012)]
|
|
58
62
|
- Compressive Gate Set Tomography [[PRX Quantum 4, 010325](https://journals.aps.org/prxquantum/abstract/10.1103/PRXQuantum.4.010325) (2023)]
|
|
@@ -60,9 +64,9 @@ Below is a list of the benchmarks currently available in the suite:
|
|
|
60
64
|
* Holistic:
|
|
61
65
|
- Quantum Volume [[Phys. Rev. A 100, 032328](https://doi.org/10.1103/PhysRevA.100.032328) (2019)]
|
|
62
66
|
- CLOPS [[arXiv:2110.14108 [quant-ph]](https://arxiv.org/abs/2110.14108) (2021)]
|
|
63
|
-
* Entanglement:
|
|
67
|
+
* Entanglement:
|
|
64
68
|
- GHZ State Fidelity [[arXiv:0712.0921 [quant-ph]](https://arxiv.org/abs/0712.0921) (2007)]
|
|
65
|
-
* Optimization:
|
|
69
|
+
* Optimization:
|
|
66
70
|
- Q-Score [[IEEE Trans. Quantum Eng., 2](https://doi.org/10.1109/TQE.2021.3090207) (2021)]
|
|
67
71
|
|
|
68
72
|
The project is split into different benchmarks, all sharing the `Benchmark` class or the legacy `BenchmarkBase` class. Each individual benchmark takes as an argument their own `BenchmarkConfigurationBase` class. All the (legacy) benchmarks executed at once are wrapped by the `BenchmarkExperiment` class, which handles dependencies among the benchmarks, storing the results, producing the plots...
|
|
@@ -104,6 +108,12 @@ To run the tests, you can use the following command:
|
|
|
104
108
|
tox -e test
|
|
105
109
|
```
|
|
106
110
|
|
|
111
|
+
To build the API documentation as HTML:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
tox -e docs
|
|
115
|
+
```
|
|
116
|
+
|
|
107
117
|
## Characterize Physical Hardware
|
|
108
118
|
|
|
109
119
|
The IQM Benchmarks suite is designed to be used with real quantum hardware. To use the suite, you will need to have access to a quantum computer. The suite is designed to work with both IQM Resonance (IQM's quantum cloud service) and on-prem devices, but can be easily adapted to work with other quantum computing platforms.
|
|
@@ -4,7 +4,7 @@ IQM Benchmarks is a suite of Quantum Characterization, Verification, and Validat
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
Below is a list of the benchmarks currently available in the suite:
|
|
7
|
-
* Gates / Layers:
|
|
7
|
+
* Gates / Layers:
|
|
8
8
|
- Standard Clifford Randomized Benchmarking [[Phys. Rev. A 85, 042311](https://journals.aps.org/pra/abstract/10.1103/PhysRevA.85.042311) (2012)]
|
|
9
9
|
- Interleaved Randomized Benchmarking [[Phys. Rev. Lett. 109, 080505](https://doi.org/10.1103/PhysRevLett.109.080505) (2012)]
|
|
10
10
|
- Compressive Gate Set Tomography [[PRX Quantum 4, 010325](https://journals.aps.org/prxquantum/abstract/10.1103/PRXQuantum.4.010325) (2023)]
|
|
@@ -12,9 +12,9 @@ Below is a list of the benchmarks currently available in the suite:
|
|
|
12
12
|
* Holistic:
|
|
13
13
|
- Quantum Volume [[Phys. Rev. A 100, 032328](https://doi.org/10.1103/PhysRevA.100.032328) (2019)]
|
|
14
14
|
- CLOPS [[arXiv:2110.14108 [quant-ph]](https://arxiv.org/abs/2110.14108) (2021)]
|
|
15
|
-
* Entanglement:
|
|
15
|
+
* Entanglement:
|
|
16
16
|
- GHZ State Fidelity [[arXiv:0712.0921 [quant-ph]](https://arxiv.org/abs/0712.0921) (2007)]
|
|
17
|
-
* Optimization:
|
|
17
|
+
* Optimization:
|
|
18
18
|
- Q-Score [[IEEE Trans. Quantum Eng., 2](https://doi.org/10.1109/TQE.2021.3090207) (2021)]
|
|
19
19
|
|
|
20
20
|
The project is split into different benchmarks, all sharing the `Benchmark` class or the legacy `BenchmarkBase` class. Each individual benchmark takes as an argument their own `BenchmarkConfigurationBase` class. All the (legacy) benchmarks executed at once are wrapped by the `BenchmarkExperiment` class, which handles dependencies among the benchmarks, storing the results, producing the plots...
|
|
@@ -56,6 +56,12 @@ To run the tests, you can use the following command:
|
|
|
56
56
|
tox -e test
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
+
To build the API documentation as HTML:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
tox -e docs
|
|
63
|
+
```
|
|
64
|
+
|
|
59
65
|
## Characterize Physical Hardware
|
|
60
66
|
|
|
61
67
|
The IQM Benchmarks suite is designed to be used with real quantum hardware. To use the suite, you will need to have access to a quantum computer. The suite is designed to work with both IQM Resonance (IQM's quantum cloud service) and on-prem devices, but can be easily adapted to work with other quantum computing platforms.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Minimal makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
# You can set these variables from the command line, and also
|
|
5
|
+
# from the environment for the first two.
|
|
6
|
+
SPHINXOPTS ?=
|
|
7
|
+
SPHINXBUILD ?= sphinx-build
|
|
8
|
+
SOURCEDIR = .
|
|
9
|
+
BUILDDIR = ../build/sphinx/
|
|
10
|
+
|
|
11
|
+
# Put it first so that "make" without argument is like "make help".
|
|
12
|
+
help:
|
|
13
|
+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
14
|
+
|
|
15
|
+
.PHONY: help Makefile
|
|
16
|
+
|
|
17
|
+
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
18
|
+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
19
|
+
%: Makefile
|
|
20
|
+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
Binary file
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{{ fullname | escape | underline}}
|
|
2
|
+
|
|
3
|
+
.. currentmodule:: {{ module }}
|
|
4
|
+
|
|
5
|
+
.. autoclass:: {{ objname }}
|
|
6
|
+
:members:
|
|
7
|
+
:show-inheritance:
|
|
8
|
+
|
|
9
|
+
{% block attributes %}
|
|
10
|
+
{% if attributes %}
|
|
11
|
+
.. rubric:: {{ _('Attributes') }}
|
|
12
|
+
|
|
13
|
+
.. autosummary::
|
|
14
|
+
{% for item in attributes if item not in inherited_members %}
|
|
15
|
+
~{{ name }}.{{ item }}
|
|
16
|
+
{%- endfor %}
|
|
17
|
+
{% endif %}
|
|
18
|
+
{% endblock %}
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
{% block methods %}
|
|
22
|
+
{% if all_methods %}
|
|
23
|
+
.. rubric:: {{ _('Methods') }}
|
|
24
|
+
|
|
25
|
+
.. autosummary::
|
|
26
|
+
{% for item in all_methods if item not in inherited_members and item not in ['__init__'] %}
|
|
27
|
+
~{{ name }}.{{ item }}
|
|
28
|
+
{%- endfor %}
|
|
29
|
+
{% endif %}
|
|
30
|
+
{% endblock %}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{{ fullname | escape | underline}}
|
|
2
|
+
|
|
3
|
+
.. automodule:: {{ fullname }}
|
|
4
|
+
|
|
5
|
+
{% block attributes %}
|
|
6
|
+
{% if attributes %}
|
|
7
|
+
.. rubric:: Module Attributes
|
|
8
|
+
|
|
9
|
+
.. autosummary::
|
|
10
|
+
:toctree:
|
|
11
|
+
{% for item in attributes %}
|
|
12
|
+
{{ item }}
|
|
13
|
+
{%- endfor %}
|
|
14
|
+
{% endif %}
|
|
15
|
+
{% endblock %}
|
|
16
|
+
|
|
17
|
+
{% block functions %}
|
|
18
|
+
{% if functions %}
|
|
19
|
+
.. rubric:: {{ _('Functions') }}
|
|
20
|
+
|
|
21
|
+
.. autosummary::
|
|
22
|
+
:toctree:
|
|
23
|
+
{% for item in functions %}
|
|
24
|
+
{{ item }}
|
|
25
|
+
{%- endfor %}
|
|
26
|
+
{% endif %}
|
|
27
|
+
{% endblock %}
|
|
28
|
+
|
|
29
|
+
{% block classes %}
|
|
30
|
+
{% if classes %}
|
|
31
|
+
.. rubric:: {{ _('Classes') }}
|
|
32
|
+
|
|
33
|
+
.. autosummary::
|
|
34
|
+
:toctree:
|
|
35
|
+
:template: autosummary-class-template.rst
|
|
36
|
+
{% for item in classes %}
|
|
37
|
+
{{ item }}
|
|
38
|
+
{%- endfor %}
|
|
39
|
+
{% endif %}
|
|
40
|
+
{% endblock %}
|
|
41
|
+
|
|
42
|
+
{% block exceptions %}
|
|
43
|
+
{% if exceptions %}
|
|
44
|
+
.. rubric:: {{ _('Exceptions') }}
|
|
45
|
+
|
|
46
|
+
.. autosummary::
|
|
47
|
+
:toctree:
|
|
48
|
+
{% for item in exceptions %}
|
|
49
|
+
{{ item }}
|
|
50
|
+
{%- endfor %}
|
|
51
|
+
{% endif %}
|
|
52
|
+
{% endblock %}
|
|
53
|
+
|
|
54
|
+
{% block modules %}
|
|
55
|
+
{% if modules %}
|
|
56
|
+
.. rubric:: Subpackages and modules
|
|
57
|
+
|
|
58
|
+
.. autosummary::
|
|
59
|
+
:toctree:
|
|
60
|
+
:template: autosummary-module-template.rst
|
|
61
|
+
:recursive:
|
|
62
|
+
{% for item in modules %}
|
|
63
|
+
~{{ item }}
|
|
64
|
+
{%- endfor %}
|
|
65
|
+
{% endif %}
|
|
66
|
+
{% endblock %}
|
|
67
|
+
|
|
68
|
+
{% block inheritance_diagram %}
|
|
69
|
+
{% if classes %}
|
|
70
|
+
.. rubric:: Inheritance
|
|
71
|
+
|
|
72
|
+
.. inheritance-diagram:: {{ fullname }}
|
|
73
|
+
:parts: 1
|
|
74
|
+
{% endif %}
|
|
75
|
+
{% endblock %}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# Configuration file for the Sphinx documentation builder.
|
|
2
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
3
|
+
|
|
4
|
+
import os
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
# -- Path setup --------------------------------------------------------------
|
|
8
|
+
|
|
9
|
+
# If extensions (or modules to document with autodoc) are in another directory,
|
|
10
|
+
# add these directories to sys.path here. If the directory is relative to the
|
|
11
|
+
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
|
12
|
+
|
|
13
|
+
# Find the path to the source files we want to to document, relative to the location of this file,
|
|
14
|
+
# convert it to an absolute path.
|
|
15
|
+
py_path = os.path.join(os.getcwd(), os.path.dirname(__file__), '../src')
|
|
16
|
+
sys.path.insert(0, os.path.abspath(py_path))
|
|
17
|
+
|
|
18
|
+
# -- Project information -----------------------------------------------------
|
|
19
|
+
|
|
20
|
+
project = 'IQM Benchmarks'
|
|
21
|
+
copyright = '2024, IQM'
|
|
22
|
+
author = 'IQM Benchmarks developers'
|
|
23
|
+
|
|
24
|
+
# The short X.Y version.
|
|
25
|
+
version = ''
|
|
26
|
+
# The full version, including alpha/beta/rc tags.
|
|
27
|
+
release = ''
|
|
28
|
+
try:
|
|
29
|
+
from iqm.benchmarks import __version__ as version
|
|
30
|
+
except ImportError:
|
|
31
|
+
pass
|
|
32
|
+
else:
|
|
33
|
+
release = version
|
|
34
|
+
|
|
35
|
+
# -- General configuration ---------------------------------------------------
|
|
36
|
+
|
|
37
|
+
# require a recent version of Sphinx
|
|
38
|
+
needs_sphinx = '7.2'
|
|
39
|
+
|
|
40
|
+
# Add any Sphinx extension module names here, as strings. They can be
|
|
41
|
+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
|
42
|
+
# ones.
|
|
43
|
+
extensions = [
|
|
44
|
+
'sphinx.ext.autodoc',
|
|
45
|
+
'sphinx.ext.autosummary',
|
|
46
|
+
'sphinx.ext.napoleon',
|
|
47
|
+
'sphinx.ext.mathjax',
|
|
48
|
+
'sphinx.ext.inheritance_diagram',
|
|
49
|
+
'sphinx.ext.todo',
|
|
50
|
+
'sphinx.ext.extlinks',
|
|
51
|
+
'sphinx.ext.intersphinx',
|
|
52
|
+
'myst_parser'
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
# Add any paths that contain templates here, relative to this directory.
|
|
56
|
+
templates_path = ['_templates']
|
|
57
|
+
|
|
58
|
+
# Include extra files in the HTML docs.
|
|
59
|
+
html_extra_path = []
|
|
60
|
+
|
|
61
|
+
# List of patterns, relative to source directory, that match files and
|
|
62
|
+
# directories to ignore when looking for source files.
|
|
63
|
+
# This pattern also affects html_static_path and html_extra_path.
|
|
64
|
+
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '.*']
|
|
65
|
+
|
|
66
|
+
# There are two options for replacing |today|: either, you set today to some
|
|
67
|
+
# non-false value, then it is used:
|
|
68
|
+
# today = ''
|
|
69
|
+
# Else, today_fmt is used as the format for a strftime call.
|
|
70
|
+
today_fmt = '%Y-%m-%d'
|
|
71
|
+
|
|
72
|
+
# If true, sectionauthor and moduleauthor directives will be shown in the
|
|
73
|
+
# output. They are ignored by default.
|
|
74
|
+
show_authors = True
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
# -- Autodoc ------------------------------------------------------------
|
|
78
|
+
|
|
79
|
+
# member ordering in autodoc output (default: 'alphabetical')
|
|
80
|
+
autodoc_member_order = 'bysource'
|
|
81
|
+
|
|
82
|
+
# where should signature annotations appear in the docs, function signature or parameter description?
|
|
83
|
+
autodoc_typehints = 'both'
|
|
84
|
+
# autodoc_typehints = 'description' puts the __init__ annotations into its docstring,
|
|
85
|
+
# which we thus have to include in the class documentation.
|
|
86
|
+
autoclass_content = 'class'
|
|
87
|
+
|
|
88
|
+
# Sphinx 3.3+: manually clean up type alias rendering in the docs
|
|
89
|
+
# autodoc_type_aliases = {'TypeAlias': 'exa.experiment.somemodule.TypeAlias'}
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
# -- Autosummary ------------------------------------------------------------
|
|
93
|
+
|
|
94
|
+
# use autosummary to generate stub pages for API docs
|
|
95
|
+
autosummary_generate = True
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
# -- Options for HTML output -------------------------------------------------
|
|
99
|
+
|
|
100
|
+
import sphinx_book_theme
|
|
101
|
+
|
|
102
|
+
# The theme to use for HTML and HTML Help pages. See the documentation for
|
|
103
|
+
# a list of builtin themes.
|
|
104
|
+
html_theme = 'sphinx_book_theme'
|
|
105
|
+
|
|
106
|
+
# Add any paths that contain custom themes here, relative to this directory.
|
|
107
|
+
html_theme_path = [sphinx_book_theme.get_html_theme_path()]
|
|
108
|
+
|
|
109
|
+
# Theme options are theme-specific and customize the look and feel of a theme
|
|
110
|
+
# further. For a list of options available for each theme, see the
|
|
111
|
+
# documentation.
|
|
112
|
+
html_theme_options = {}
|
|
113
|
+
|
|
114
|
+
# A shorter title for the navigation bar. Default is the same as html_title.
|
|
115
|
+
# html_short_title = None
|
|
116
|
+
|
|
117
|
+
# The name of an image file (relative to this directory) to place at the top
|
|
118
|
+
# of the sidebar.
|
|
119
|
+
html_logo = '_static/images/logo.png'
|
|
120
|
+
|
|
121
|
+
# The name of an image file (within the static path) to use as favicon of the
|
|
122
|
+
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
|
123
|
+
# pixels large.
|
|
124
|
+
html_favicon = '_static/images/favicon.ico'
|
|
125
|
+
|
|
126
|
+
# Add any paths that contain custom static files (such as style sheets) here,
|
|
127
|
+
# relative to this directory. They are copied after the builtin static files,
|
|
128
|
+
# so a file named "default.css" will overwrite the builtin "default.css".
|
|
129
|
+
html_static_path = ['_static']
|
|
130
|
+
|
|
131
|
+
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
|
132
|
+
# using the given strftime format.
|
|
133
|
+
html_last_updated_fmt = '%Y-%m-%d'
|
|
134
|
+
|
|
135
|
+
# Output file base name for HTML help builder.
|
|
136
|
+
htmlhelp_basename = 'iqm_benchmarks-doc'
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
# -- MathJax options ----------------------------------------------------------
|
|
140
|
+
|
|
141
|
+
# Here we configure MathJax, mostly to define LaTeX macros.
|
|
142
|
+
mathjax3_config = {
|
|
143
|
+
'tex': {
|
|
144
|
+
'macros': {
|
|
145
|
+
'vr': r'\vec{r}', # no arguments
|
|
146
|
+
'ket': [r'\left| #1 \right\rangle', 1], # one argument
|
|
147
|
+
'iprod': [r'\left\langle #1 | #2 \right\rangle', 2], # two arguments
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
# -- External mapping ------------------------------------------------------------
|
|
154
|
+
|
|
155
|
+
python_version = '.'.join(map(str, sys.version_info[0:2]))
|
|
156
|
+
intersphinx_mapping = {
|
|
157
|
+
'python': ('https://docs.python.org/' + python_version, None),
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
extlinks = {
|
|
161
|
+
'issue': ('https://github.com/iqm-finland/iqm-benchmarks/issues/%s', 'issue '),
|
|
162
|
+
'mr': ('https://github.com/iqm-finland/iqm-benchmarks/pull/%s', 'MR '),
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
# -- Options for sphinxcontrib.bibtex -------------------------------------------------
|
|
167
|
+
|
|
168
|
+
# List of all bibliography files used.
|
|
169
|
+
#bibtex_bibfiles = ['references.bib']
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
IQM Benchmarks
|
|
2
|
+
##########
|
|
3
|
+
|
|
4
|
+
:Release: |release|
|
|
5
|
+
:Date: |today|
|
|
6
|
+
:Source Code: `<https://github.com/iqm-finland/iqm-benchmarks>`_
|
|
7
|
+
|
|
8
|
+
Quantum Characterization, Verification, and Validation (QCVV) tools for quantum computing.
|
|
9
|
+
Developed by `IQM <https://meetiqm.com/>`_.
|
|
10
|
+
|
|
11
|
+
Contents
|
|
12
|
+
========
|
|
13
|
+
|
|
14
|
+
.. toctree::
|
|
15
|
+
:maxdepth: 2
|
|
16
|
+
|
|
17
|
+
readme
|
|
18
|
+
API
|
|
19
|
+
license
|
|
20
|
+
|
|
21
|
+
.. toctree::
|
|
22
|
+
:maxdepth: 1
|
|
23
|
+
|
|
24
|
+
changelog
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Indices and tables
|
|
28
|
+
==================
|
|
29
|
+
|
|
30
|
+
* :ref:`genindex`
|
|
31
|
+
* :ref:`modindex`
|
|
32
|
+
* :ref:`search`
|
|
@@ -29,17 +29,17 @@ requires-python = ">=3.11"
|
|
|
29
29
|
dependencies = [
|
|
30
30
|
"lmfit >= 1.2",
|
|
31
31
|
"matplotlib >= 3.6.3, < 4",
|
|
32
|
-
"more-itertools
|
|
32
|
+
"more-itertools >= 10.1.0, < 11.0.0",
|
|
33
33
|
"mthree >= 2.6, < 2.7",
|
|
34
|
-
"networkx
|
|
34
|
+
"networkx>=3.3, < 4.0",
|
|
35
35
|
"numpy >= 1.25.2, < 2.0",
|
|
36
|
-
"qiskit >= 1.0",
|
|
37
|
-
"qiskit-iqm >= 15.1",
|
|
38
|
-
"scikit-optimize
|
|
39
|
-
"tabulate
|
|
40
|
-
"uncertainties
|
|
41
|
-
"pycurl
|
|
42
|
-
"xarray
|
|
36
|
+
"qiskit >= 1.0, < 2.0",
|
|
37
|
+
"qiskit-iqm >= 15.1, < 16.0",
|
|
38
|
+
"scikit-optimize >= 0.10.2, < 0.11.0",
|
|
39
|
+
"tabulate >= 0.9.0, <1.0.0",
|
|
40
|
+
"uncertainties >= 3.2.2, < 3.3.0",
|
|
41
|
+
"pycurl >= 7.45.3, < 8.0",
|
|
42
|
+
"xarray >= 2024.6.0, < 2025.0.0",
|
|
43
43
|
"types-pycurl",
|
|
44
44
|
]
|
|
45
45
|
|
|
@@ -75,6 +75,11 @@ test = [
|
|
|
75
75
|
"pytest-pylint == 0.21.0",
|
|
76
76
|
]
|
|
77
77
|
|
|
78
|
+
docs = [
|
|
79
|
+
"sphinx == 7.2.6",
|
|
80
|
+
"sphinx-book-theme == 1.1.2",
|
|
81
|
+
"myst-parser >= 4.0.0, < 5",
|
|
82
|
+
]
|
|
78
83
|
|
|
79
84
|
[tool.black]
|
|
80
85
|
line-length = 120
|
|
@@ -135,6 +135,7 @@ def default_analysis_function(result: BenchmarkAnalysisResult) -> BenchmarkAnaly
|
|
|
135
135
|
def merge_datasets_dac(datasets: List[xr.Dataset]) -> xr.Dataset:
|
|
136
136
|
"""
|
|
137
137
|
Merges a list of datasets recursively to minimize dataset sizes during merge
|
|
138
|
+
|
|
138
139
|
Args:
|
|
139
140
|
datasets: List[xr.Dateset]
|
|
140
141
|
A list of xarray datasets
|
{iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/compressive_gst/compressive_gst.py
RENAMED
|
@@ -369,6 +369,7 @@ def create_predefined_gate_set(gate_set, num_qubits) -> Tuple[List[QuantumCircui
|
|
|
369
369
|
|
|
370
370
|
The circuits are assigned to the specified qubit_layouts on the backend only during transipilation, so the qubit labels
|
|
371
371
|
at this stage may not represent the actual qubit labels on the backend.
|
|
372
|
+
|
|
372
373
|
Args:
|
|
373
374
|
gate_set: str
|
|
374
375
|
The name of the gate set
|
|
@@ -365,7 +365,8 @@ def generate_ghz_spanning_tree(
|
|
|
365
365
|
n_state: int | None = None,
|
|
366
366
|
) -> Tuple[QuantumCircuit, List[int]]:
|
|
367
367
|
"""
|
|
368
|
-
Generates a GHZ state in log-depth by computing a minimal spanning tree for a given coupling map
|
|
368
|
+
Generates a GHZ state in log-depth by computing a minimal spanning tree for a given coupling map.
|
|
369
|
+
|
|
369
370
|
Args:
|
|
370
371
|
graph: networkx.Graph
|
|
371
372
|
A graph of the backend coupling map
|
|
@@ -622,8 +623,9 @@ class GHZBenchmark(Benchmark):
|
|
|
622
623
|
|
|
623
624
|
def generate_native_ghz(self, qubit_layout: List[int], qubit_count: int, routine: str) -> QuantumCircuit:
|
|
624
625
|
"""
|
|
625
|
-
|
|
626
|
-
|
|
626
|
+
Generate a circuit preparing a GHZ state,
|
|
627
|
+
according to a given routine and transpiled to the native gate set and topology.
|
|
628
|
+
|
|
627
629
|
Args:
|
|
628
630
|
qubit_layout: List[int]
|
|
629
631
|
The subset of system-qubits used in the protocol, indexed from 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-benchmarks
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.11
|
|
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>, Aniket Rath <aniket.rath@meetiqm.com>, Jami Rönkkö <jami@meetiqm.com>, Pedro Figueroa Romero <pedro.romero@meetiqm.com>, Vicente Pina Canelles <vicente.pina@meetiqm.com>, Raphael Brieger <raphael.brieger@meetiqm.com>, Stefan Seegerer <stefan.seegerer@meetiqm.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/iqm-finland/iqm-benchmarks
|
|
@@ -13,17 +13,17 @@ Description-Content-Type: text/markdown
|
|
|
13
13
|
License-File: LICENSE
|
|
14
14
|
Requires-Dist: lmfit>=1.2
|
|
15
15
|
Requires-Dist: matplotlib<4,>=3.6.3
|
|
16
|
-
Requires-Dist: more-itertools
|
|
16
|
+
Requires-Dist: more-itertools<11.0.0,>=10.1.0
|
|
17
17
|
Requires-Dist: mthree<2.7,>=2.6
|
|
18
|
-
Requires-Dist: networkx
|
|
18
|
+
Requires-Dist: networkx<4.0,>=3.3
|
|
19
19
|
Requires-Dist: numpy<2.0,>=1.25.2
|
|
20
|
-
Requires-Dist: qiskit
|
|
21
|
-
Requires-Dist: qiskit-iqm
|
|
22
|
-
Requires-Dist: scikit-optimize
|
|
23
|
-
Requires-Dist: tabulate
|
|
24
|
-
Requires-Dist: uncertainties
|
|
25
|
-
Requires-Dist: pycurl
|
|
26
|
-
Requires-Dist: xarray
|
|
20
|
+
Requires-Dist: qiskit<2.0,>=1.0
|
|
21
|
+
Requires-Dist: qiskit-iqm<16.0,>=15.1
|
|
22
|
+
Requires-Dist: scikit-optimize<0.11.0,>=0.10.2
|
|
23
|
+
Requires-Dist: tabulate<1.0.0,>=0.9.0
|
|
24
|
+
Requires-Dist: uncertainties<3.3.0,>=3.2.2
|
|
25
|
+
Requires-Dist: pycurl<8.0,>=7.45.3
|
|
26
|
+
Requires-Dist: xarray<2025.0.0,>=2024.6.0
|
|
27
27
|
Requires-Dist: types-pycurl
|
|
28
28
|
Provides-Extra: develop
|
|
29
29
|
Requires-Dist: tox==4.16.0; extra == "develop"
|
|
@@ -45,6 +45,10 @@ Requires-Dist: pytest-cov==4.1.0; extra == "test"
|
|
|
45
45
|
Requires-Dist: pytest-isort==3.1.0; extra == "test"
|
|
46
46
|
Requires-Dist: pytest-mypy==0.10.3; extra == "test"
|
|
47
47
|
Requires-Dist: pytest-pylint==0.21.0; extra == "test"
|
|
48
|
+
Provides-Extra: docs
|
|
49
|
+
Requires-Dist: sphinx==7.2.6; extra == "docs"
|
|
50
|
+
Requires-Dist: sphinx-book-theme==1.1.2; extra == "docs"
|
|
51
|
+
Requires-Dist: myst-parser<5,>=4.0.0; extra == "docs"
|
|
48
52
|
|
|
49
53
|
# IQM Benchmarks
|
|
50
54
|
|
|
@@ -52,7 +56,7 @@ IQM Benchmarks is a suite of Quantum Characterization, Verification, and Validat
|
|
|
52
56
|
|
|
53
57
|
|
|
54
58
|
Below is a list of the benchmarks currently available in the suite:
|
|
55
|
-
* Gates / Layers:
|
|
59
|
+
* Gates / Layers:
|
|
56
60
|
- Standard Clifford Randomized Benchmarking [[Phys. Rev. A 85, 042311](https://journals.aps.org/pra/abstract/10.1103/PhysRevA.85.042311) (2012)]
|
|
57
61
|
- Interleaved Randomized Benchmarking [[Phys. Rev. Lett. 109, 080505](https://doi.org/10.1103/PhysRevLett.109.080505) (2012)]
|
|
58
62
|
- Compressive Gate Set Tomography [[PRX Quantum 4, 010325](https://journals.aps.org/prxquantum/abstract/10.1103/PRXQuantum.4.010325) (2023)]
|
|
@@ -60,9 +64,9 @@ Below is a list of the benchmarks currently available in the suite:
|
|
|
60
64
|
* Holistic:
|
|
61
65
|
- Quantum Volume [[Phys. Rev. A 100, 032328](https://doi.org/10.1103/PhysRevA.100.032328) (2019)]
|
|
62
66
|
- CLOPS [[arXiv:2110.14108 [quant-ph]](https://arxiv.org/abs/2110.14108) (2021)]
|
|
63
|
-
* Entanglement:
|
|
67
|
+
* Entanglement:
|
|
64
68
|
- GHZ State Fidelity [[arXiv:0712.0921 [quant-ph]](https://arxiv.org/abs/0712.0921) (2007)]
|
|
65
|
-
* Optimization:
|
|
69
|
+
* Optimization:
|
|
66
70
|
- Q-Score [[IEEE Trans. Quantum Eng., 2](https://doi.org/10.1109/TQE.2021.3090207) (2021)]
|
|
67
71
|
|
|
68
72
|
The project is split into different benchmarks, all sharing the `Benchmark` class or the legacy `BenchmarkBase` class. Each individual benchmark takes as an argument their own `BenchmarkConfigurationBase` class. All the (legacy) benchmarks executed at once are wrapped by the `BenchmarkExperiment` class, which handles dependencies among the benchmarks, storing the results, producing the plots...
|
|
@@ -104,6 +108,12 @@ To run the tests, you can use the following command:
|
|
|
104
108
|
tox -e test
|
|
105
109
|
```
|
|
106
110
|
|
|
111
|
+
To build the API documentation as HTML:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
tox -e docs
|
|
115
|
+
```
|
|
116
|
+
|
|
107
117
|
## Characterize Physical Hardware
|
|
108
118
|
|
|
109
119
|
The IQM Benchmarks suite is designed to be used with real quantum hardware. To use the suite, you will need to have access to a quantum computer. The suite is designed to work with both IQM Resonance (IQM's quantum cloud service) and on-prem devices, but can be easily adapted to work with other quantum computing platforms.
|
|
@@ -9,6 +9,16 @@ tox.ini
|
|
|
9
9
|
.github/workflows/main.yml
|
|
10
10
|
.github/workflows/publish.yml
|
|
11
11
|
.github/workflows/tag_and_release.yml
|
|
12
|
+
docs/API.rst
|
|
13
|
+
docs/Makefile
|
|
14
|
+
docs/changelog.rst
|
|
15
|
+
docs/conf.py
|
|
16
|
+
docs/index.rst
|
|
17
|
+
docs/license.rst
|
|
18
|
+
docs/readme.md
|
|
19
|
+
docs/_static/images/favicon.ico
|
|
20
|
+
docs/_templates/autosummary-class-template.rst
|
|
21
|
+
docs/_templates/autosummary-module-template.rst
|
|
12
22
|
examples/example_clifford_rb.ipynb
|
|
13
23
|
examples/example_clops.ipynb
|
|
14
24
|
examples/example_experiment_all.ipynb
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
lmfit>=1.2
|
|
2
2
|
matplotlib<4,>=3.6.3
|
|
3
|
-
more-itertools
|
|
3
|
+
more-itertools<11.0.0,>=10.1.0
|
|
4
4
|
mthree<2.7,>=2.6
|
|
5
|
-
networkx
|
|
5
|
+
networkx<4.0,>=3.3
|
|
6
6
|
numpy<2.0,>=1.25.2
|
|
7
|
-
qiskit
|
|
8
|
-
qiskit-iqm
|
|
9
|
-
scikit-optimize
|
|
10
|
-
tabulate
|
|
11
|
-
uncertainties
|
|
12
|
-
pycurl
|
|
13
|
-
xarray
|
|
7
|
+
qiskit<2.0,>=1.0
|
|
8
|
+
qiskit-iqm<16.0,>=15.1
|
|
9
|
+
scikit-optimize<0.11.0,>=0.10.2
|
|
10
|
+
tabulate<1.0.0,>=0.9.0
|
|
11
|
+
uncertainties<3.3.0,>=3.2.2
|
|
12
|
+
pycurl<8.0,>=7.45.3
|
|
13
|
+
xarray<2025.0.0,>=2024.6.0
|
|
14
14
|
types-pycurl
|
|
15
15
|
|
|
16
16
|
[develop]
|
|
17
17
|
tox==4.16.0
|
|
18
18
|
|
|
19
|
+
[docs]
|
|
20
|
+
sphinx==7.2.6
|
|
21
|
+
sphinx-book-theme==1.1.2
|
|
22
|
+
myst-parser<5,>=4.0.0
|
|
23
|
+
|
|
19
24
|
[examples]
|
|
20
25
|
notebook==7.2.1
|
|
21
26
|
|
|
@@ -77,3 +77,16 @@ allowlist_externals = tox
|
|
|
77
77
|
commands =
|
|
78
78
|
tox -e clean
|
|
79
79
|
python -m build
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
[testenv:docs]
|
|
83
|
+
description =
|
|
84
|
+
Invoke sphinx to build the docs.
|
|
85
|
+
setenv =
|
|
86
|
+
DOCSDIR = {toxinidir}/docs
|
|
87
|
+
BUILDDIR = {toxinidir}/build/sphinx
|
|
88
|
+
BUILD = html
|
|
89
|
+
extras =
|
|
90
|
+
docs
|
|
91
|
+
commands =
|
|
92
|
+
sphinx-build -b {env:BUILD} "{env:DOCSDIR}" "{env:BUILDDIR}/{env:BUILD}"
|
|
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
|
|
File without changes
|
|
File without changes
|
{iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/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
|
|
File without changes
|
{iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/quantum_volume/quantum_volume.py
RENAMED
|
File without changes
|
{iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/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
|
{iqm_benchmarks-1.9 → iqm_benchmarks-1.11}/src/iqm/benchmarks/randomized_benchmarking/multi_lmfit.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
|
|
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
|