Skip to main content

Copyright (c) 2022 Institute for Quantum Computing, Baidu Inc. All Rights Reserved.

About QEP

QEP is a Quantum Error Processing toolkit developed by the Institute for Quantum Computing at Baidu Research. It aims to deal with quantum errors inherent in quantum devices using software solutions. Currently, it offers four powerful quantum error processing functions: performance evaluation, quantum error characterization, quantum error mitigation, and quantum error correction:

  • Performance Evaluation is used for assessing the capabilities and extendibilities of quantum computing hardware platforms, through estimating the error rates of quantum states, quantum gates, and quantum measurement apparatus. It provides standard randomized benchmarking, interleaved randomized benchmarking, cross-entropy benchmarking, unitarity randomized benchmarking, direct fidelity estimation, and cross-platform fidelity estimation methods.

  • Quantum Error Characterization is used for reconstructing the comprehensive information in quantum computing hardware platforms, through many partial and limited experimental results. It provides quantum state tomography, quantum process tomography, quantum detector tomography, quantum gateset tomography, and spectral quantum tomography.

  • Quantum Error Mitigation is used for improving the accuracy of quantum computational results, through post-processing the experiment data obtained by varying noisy experiments,
    extending the computational reach of a noisy superconducting quantum processor. It provides zero-noise extrapolation technique to mitigate quantum gate noise, and a collection of methods such as inverse, least-square, iterative Bayesian unfolding, Neumann series to mitigate quantum measurement noise.

  • Quantum Error Correction (QEC) is used to protect quantum information from errors due to environmental noise and imperfections in hardware. Quantum computers rely on the delicate properties of quantum systems, which are susceptible to errors, and thus, QEC has become an essential tool for realizing fault-tolerant quantum computing. It provides a simulator that can simulate error correction codes based on the stabilizer formalism, allowing users to study the effects of various types of noise, assess the performance of different error correction codes, and evaluate the robustness of quantum algorithms to errors.

QEP is based on QCompute, which a Python-based open-source quantum computing platform SDK also developed by Institute for Quantum Computing. It provides a full-stack programming experience for senior users via hybrid quantum programming language features and high-performance simulators. You can install QCompute via pypi. When you install QEP, QCompute will be automatically installed. Please refer to QCompute's official Open Source page for more details.

Installation

Install QEP

The package QEP is compatible with 64-bit Python 3.8 and 3.9, on Linux, MacOS (10.14 or later) and Windows. We highly recommend the users to install QEP via pip. Open the Terminal and run

pip install qcompute-qep

This will install the QEP binaries as well as the QEP package. For those using an older version of QEP, keep up to date by installing with the --upgrade flag for additional features and bug fixes.

Run Examples

After installation, you can try the following simple program to check whether QEP has been successfully installed.

from QCompute import *
import qcompute_qep.tomography as tomography


# Step 1. Initialize a quantum program for preparing the Bell state
qp = QEnv()  # qp is short for "quantum program", instance of QProgram
qp.Q.createList(2)
H(qp.Q[0])
CX(qp.Q[0], qp.Q[1])

# Step 2. Set the quantum computer (instance of QComputer).
# For debugging on ideal simulator, change qc to BackendName.LocalBaiduSim2
qc = BackendName.LocalBaiduSim2

# For test on real quantum hardware, change qc to BackendName.CloudBaiduQPUQian
# You must set your VIP token in order to access the hardware
# Define.hubToken = "Token"
# qc = BackendName.CloudBaiduQPUQian

# Step 3. Perform Quantum State Tomography, check how well the Bell state is prepared.
st = tomography.StateTomography()

# Alternatively, you may initialize the StateTomography instance as follows:
# st = StateTomography(qp, qc, method='inverse', shots=4096)

# Call the tomography procedure and obtain the noisy quantum state
st.fit(qp, qc, method='inverse', shots=4096)

print("***********************************************************************")
print("Testing whether 'qcompute-qep' is successfully installed or not now ...\n")

print('Fidelity of the Bell state is: F = {:.5f}'.format(st.fidelity))
print("Please change 'qc' to other quantum computers for more tests.\n")

print("Package 'qcompute-qep' is successfully installed! Please enjoy!")
print("***********************************************************************")

Note that more examples are provided in the API documentation, the QEP Tutorials, and the source file of QEP hosted in GitHub. You can get started from there.

Tutorials

QEP provides detailed and comprehensive tutorials for performance evaluation, quantum error characterization, quantum error mitigation, and quantum error correction, ranging from theoretical analysis to practical application. We recommend the interested researchers or developers to download the Jupyter Notebooks and try it. The tutorials are listed as follows:

More tutorials and demonstrations will be included in the future release.

API Documentation

For those who are looking for explanation on the python classes and functions in QEP, please refer to our API documentation.

Feedbacks

Users are encouraged to contact us via email quantum@baidu.com with general questions, unfixed bugs, and potential improvements. We hope to make QEP better together with the community!

Research based on QEP

We encourage researchers and developers to use QEP to explore quantum error processing. If your work uses QEP, please feel free to send us a notice via quantum@baidu.com and cite us with the following BibTeX:

@misc{QEP, 
    author={{Baidu Quantum}},
    title={{Quantum Error Processing Toolkit (QEP)}}, 
    year={2022}, 
    url={https://quantum-hub.baidu.com/qep/}, 
    version={1.1.0}
}

QEP uses Apache-2.0 license.

Metadata

Release files for qcompute-qep 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qcompute-qep 1.1.0
File Size Uploaded Provenance
qcompute-qep-1.1.0.tar.gz 155.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for qcompute-qep 1.1.0
File Interpreter ABI Platform
qcompute_qep-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 364.4 kB

Release files / qcompute-qep-1.1.0.tar.gz

Download URL qcompute-qep-1.1.0.tar.gz
Size 155.6 kB
Tags Source
SHA-256 checksum
How to use checksums
753aebd501b540f7ba1ec3b907efc882e33cfc2b5154ec2b86229d539348047c
BLAKE2b-256 checksum
How to use checksums
347155335a597777082e1c319b32751e37de596a022d7c5ba6e40aa3a7c743af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release files / qcompute_qep-1.1.0-py3-none-any.whl

Download URL qcompute_qep-1.1.0-py3-none-any.whl
Size 208.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e634d086d384bdfd4cbf31fcf7da885c8e76ee7474d6dfcbbf5913b330da854
BLAKE2b-256 checksum
How to use checksums
829554331dd2867edc3cb4ae135cc60fb2eaba34ce4c14af469dd02ad6d06083
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Security for qcompute-qep 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page