Skip to main content

QEC-Playground

A research tool to explore Quantum Error Correction (QEC), primarily surface codes.

[Error] we're working on the documentation of this project, please wait for a formal release (1.0.0) before you want to use this project.

Installation

See the QEC-Playground Documentation: Installation for the detailed instructions. A brief example is below.

# Download the Blossom V Library [Optional]
wget -c https://pub.ist.ac.at/~vnk/software/blossom5-v2.05.src.tar.gz -O - | tar -xz
cp -r blossom5-v2.05.src/* backend/blossomV/
rm -r blossom5-v2.05.src

# Install the Python Dependencies [Optional]
sudo apt install python3 python3-pip
pip3 install networkx

# Install the Rust Toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.bashrc  # this will add `~/.cargo/bin` to path
cd backend/rust/
cargo build --release
cd ../../

Command-line Interface

See the QEC-Playground Documentation: CLI for the detailed instructions. A brief example use case is below.

Run cargo run --release -- --help under backend/rust/ folder to get all provided commands of backend program. The option --help prints out the information of this command, which can be helpful to find subcommands as well as to understand the purpose of each option. An example output is below.

QECPlayground 0.1.6
Yue Wu <yue.wu@yale.edu>, Namitha Liyanage (namitha.liyanage@yale.edu)
Quantum Error Correction Playground

USAGE:
    qecp <SUBCOMMAND>

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

SUBCOMMANDS:
    fpga_generator    fpga_generator
    help              Print this message or the help of the given subcommand(s)
    server            HTTP server for decoding information
    test              testing features
    tool              tools

To run a simulation to benchmark the logical error rate of decoder, run cargo run --release -- tool benchmark --help. An example output is below.

qecp-tool-benchmark 0.1.6
benchmark surface code decoders

USAGE:
    qecp tool benchmark [OPTIONS] <dis> <nms> <ps>

ARGS:
    <dis>    [di1,di2,di3,...,din] code distance of vertical axis
    <nms>    [nm1,nm2,nm3,...,nmn] number of noisy measurement rounds, must have exactly the
             same length as `dis`; note that a perfect measurement is always capped at the end,
             so to simulate a single round of perfect measurement you should set this to 0
    <ps>     [p1,p2,p3,...,pm] p = px + py + pz unless noise model has special interpretation of
             this value

OPTIONS:
        --bias_eta <bias_eta>
            bias_eta = pz / (px + py) and px = py, px + py + pz = p. default to 1/2, which means px
            = pz = py [default: 0.5]
        ......

For example, to test code-distance-3 standard CSS surface code with depolarizing physical error rates 3%, 2% and 1% only on data qubits (i.e. perfect stabilizer measurements) using the default decoder (MWPM decoder), run:

cargo run --release -- tool benchmark [3] [0] [3e-2,2e-2,1e-2]

An example result is below.

format: <p> <di> <nm> <total_repeats> <qec_failed> <error_rate> <dj> <confidence_interval_95_percent> <pe>
0.03 3 0 567712 10000 0.01761456513161603 3 1.9e-2 0
0.02 3 0 1255440 10000 0.007965334862677627 3 2.0e-2 0
0.01 3 0 4705331 10000 0.002125248999485902 3 2.0e-2 0

Change Log

See CHANGELOG.md

Contributions

Yue Wu (yue.wu@yale.edu): implement 3D GUI. design and implement interactive tutorial. propose and implement naïve decoder. implement MWPM decoder. Implement different variants of surface code and different decoders (see change log 2020.11.8 - 2022.3.20). The major developer and maintainer of this repository.

Guojun Chen: collaborator of CPSC 559 course project: design GUI. design and implement machine learning based weight optimized MWPM decoder.

Namitha Godawatte Liyanage: implement approximate MWPM decoder and FPGA related functionalities.

Neil He: bind library to Python.

Attribution

When using QEC-Playground for research, please cite:

TODO: arXiv link for related papers (probably the fusion blossom paper)

Metadata

Release files for qecp 0.2.3

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

Source distribution (sdist)

Source distribution for qecp 0.2.3
File Size Uploaded
qecp-0.2.3.tar.gz 611.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for qecp 0.2.3
File
qecp-0.2.3-cp37-abi3-win_amd64.whl CPython 3.7 abi3 Windows x86-64 Details
qecp-0.2.3-cp37-abi3-win32.whl CPython 3.7 abi3 Windows x86-32 Details
qecp-0.2.3-cp37-abi3-musllinux_1_1_x86_64.whl CPython 3.7 abi3 Linux musl 1.1+ x86-64 Details
qecp-0.2.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 abi3 Linux glibc 2.17+ x86-64 Details
qecp-0.2.3-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl CPython 3.7 abi3 macOS 10.9+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64, macOS 10.9+ x86-64 Details

Total release size: 43.4 MB

Release files / qecp-0.2.3.tar.gz

Download URL qecp-0.2.3.tar.gz
Size 611.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3c6e110def6622fbe5df03a2b42bf4bdd902eceb7b31525a923288ee1ffc37f8
BLAKE2b-256 checksum
How to use checksums
697faafe3c478eb43a8b5d79d463ef5a55ece0b5c4634654e6fdc2a217696b01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release files / qecp-0.2.3-cp37-abi3-win_amd64.whl

Download URL qecp-0.2.3-cp37-abi3-win_amd64.whl
Size 1.2 MB
Tags CPython 3.7 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
6fa5d674c3fce20cdee087cfff5d0793846651b0a571b200b55474dc3bd7979d
BLAKE2b-256 checksum
How to use checksums
3ad19ef81d8174dd214674a86937db99a870632ac29a4702944a746d4a73ea92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release files / qecp-0.2.3-cp37-abi3-win32.whl

Download URL qecp-0.2.3-cp37-abi3-win32.whl
Size 1.2 MB
Tags CPython 3.7 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
17da15fc69cda26899e861b9e1cc82229af11e36d8a09ffbe0af03fddbe04121
BLAKE2b-256 checksum
How to use checksums
bd634b6436f506fd4cbf5b477447d6fe45cad5a9c52514998ea28b763f791770
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release files / qecp-0.2.3-cp37-abi3-musllinux_1_1_x86_64.whl

Download URL qecp-0.2.3-cp37-abi3-musllinux_1_1_x86_64.whl
Size 18.6 MB
Tags CPython 3.7 Linux musl 1.1+ x86-64 abi3
SHA-256 checksum
How to use checksums
f64c24ce9fd015f6302b12da911bfd70b425a8c9e940130aff432d89de5cee47
BLAKE2b-256 checksum
How to use checksums
d255180d13b16812375a474690fd1aa741d046d15a170f898e0859e310c6d761
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release files / qecp-0.2.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL qecp-0.2.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 18.6 MB
Tags CPython 3.7 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
7ec1dc81e6eef9956f6ebb4df6e9a3ec905e3d3624d045afb69b81766d8b0c7a
BLAKE2b-256 checksum
How to use checksums
004dac344afbafaeb13d921d7f21df5e455c110c1bcb3975b0dc06bff2308cb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release files / qecp-0.2.3-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl

Download URL qecp-0.2.3-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 3.1 MB
Tags CPython 3.7 abi3 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3d04db979a1a8513c5b96e195c8248b6b3724660c868dc3ced6937cf5a3f7550
BLAKE2b-256 checksum
How to use checksums
d5961e810d7e3c5092bd4aa983327a7e03a1f7f28c2d6d99ac087142039dd0f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release history Release notifications | RSS feed

This release

0.2.3 This release

6 release files

0.1.9

6 release files

0.1.8

6 release files

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