qem-zne
Research project implementing zero-noise extrapolation
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, aps.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.7%) to scientific vocabulary
Repository
Research project implementing zero-noise extrapolation
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Zero-noise extrapolation on NISQ devices: benchmarking and some new results
This project performs the benchmarking of zero-noise extrapolation (ZNE) ([Cai et al, 2023], [Li and Benjamin, 2017], [Temme et al, 2017], [Majumdar et al, 2023]) on simulators, snapshots and real devices. The main objectives are: - Finding the best performance-complexity trade-off for ZNE. - Determining the best implementation of ZNE on NISQ devices.
To achieve these objectives, this project has led to an implementation of zero-noise extrapolation, named customZNE. Its main features are the following:
- Global and local folding to boost the noise in the initial circuit.
- Polynomial and exponential extrapolations to compute the noise-free expectation value.
This implementation uses Python 3.9 and higher, under GNU/Linux.
This project also includes experiments using qiskitZNE, the ZNE provided by Qiskit from IBM.
This documentation explains how to create the virtual environment required for this implementation and how to process the data obtained during the project.
How to create the virtual environment
Steps:
1. Clone this GitHub repository in your working directory, here in ~/virenv/:
bash
git clone https://github.com/oanikienko/qem-zne.git
Create the virtual environment in
~/virenv/:bash python3 -m venv ~/virenv/qem-zne/Go in the directory
qem-zneand activate the newly created environment, while exporting the path variables:bash source ~/virenv/qem-zne/bin/activate && export PYTHONPATH="${PYTHONPATH}:~/virenv/qem-zne/src:~/virenv/qem-zne/src/customZNE"Path variables must be exported in order to importcustomZNEmodules correctly.Upgrade
pipand install the necessary libraries:bash pip install -U pip pip install numpy matplotlib
For the next times, only the activation of the environment is needed, using the following command:
bash
source ~/virenv/qem-zne/bin/activate && export PYTHONPATH="${PYTHONPATH}:~/virenv/qem-zne/src:~/virenv/qem-zne/src/customZNE"
Once the environment has been created and activated, data can be processed.
How to process data
[!IMPORTANT] Please note that Qiskit 1.0.0 has been released since March 31st, 2024. As a consequence, the results cannot be reproduced anymore because this new release is not backwards compatible. From now on, only data processing can be performed, using the experiment files from this repository. The following section has been rewritten accordingly.
The data obtained after running the script is stored in src/data/, under the name <experiment_filename>_results.yaml.
Steps:
1. Activate the environment if you have not already done so:
bash
source ~/virenv/qem-zne/bin/activate && export PYTHONPATH="${PYTHONPATH}:~/virenv/qem-zne/src:~/virenv/qem-zne/src/customZNE"
Go into the directory
srcwhere all the scripts are stored:bash cd src/Process the data created with
zne_performing.py. Two scripts are available:- To plot with linear scale on both axes, run
data_processing.py:bash python3 data_processing.py data/chosen_ZNE/<experiment_filename>_results.yaml results/path/to/storage/directory/ - To plot figures using logarithm scale on the x-axis, run
logarithm_data_processing.pyinstead, with the same parameters:bash python3 logarithm_data_processing.py data/chosen_ZNE/<experiment_filename>_results.yaml results/path/to/storage/directory/Please note that: chosen_ZNEis eithercustomZNEorqiskitZNE.<experiment_filename>_results.yamlis one of the files indata/chosen_ZNE/.results/path/to/storage/directory/is the directory where the figures will be stored after executing the script.
- To plot with linear scale on both axes, run
References
[Cai et al, 2023] Z. Cai, R. Babbush, S. C. Benjamin, S. Endo, W. J. Huggins, Y. Li, J. R. McClean, and T. E. O’Brien, “Quantum Error Mitigation,” Jun. 2023, first consultation on 12/07/2023. [Online]. Available: http://arxiv.org/abs/2210.00921.
[Li and Benjamin, 2017] Y. Li and S. C. Benjamin, “Efficient Variational Quantum Simulator Incorporating Active Error Minimization,” Phys. Rev. X, vol. 7, no. 2, p. 021050, Jun. 2017, first consultation on 27/06/2023. [Online]. Available: https://link.aps.org/doi/10.1103/PhysRevX.7.021050.
[Temme et al, 2017] K. Temme, S. Bravyi, and J. M. Gambetta, “Error Mitigation for Short-Depth Quantum Circuits,” Phys. Rev. Lett., vol. 119, no. 18, p. 180509, Nov. 2017, first consultation on 30/06/2023. [Online]. Available: https://link.aps.org/doi/10.1103/PhysRevLett.119.180509.
[Majumdar et al, 2023] R. Majumdar, P. Rivero, F. Metz, A. Hasan, and D. S. Wang, “Best practices for quantum error mitigation with digital zero-noise extrapolation,” Jul. 2023, first consultation on 18/08/2023. [Online]. Available: http://arxiv.org/abs/2307.05203.
Owner
- Login: oanikienko
- Kind: user
- Repositories: 1
- Profile: https://github.com/oanikienko
Citation (CITATION.bib)
@misc{anikienko_customZNE,
author = {Anikienko, Ouliana},
title = {{customZNE} - {An} implementation of {Zero}-noise extrapolation},
year = {2024},
publisher = {Zenodo},
version = {1.0.0},
doi = {},
url = {https://github.com/oanikienko/qem-zne},
}