qecp

An educational tool to the introduction of Quantum Error Correction (QEC)

https://github.com/yuewuo/qec-playground

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
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    3 of 9 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.6%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

An educational tool to the introduction of Quantum Error Correction (QEC)

Basic Info
  • Host: GitHub
  • Owner: yuewuo
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 35.3 MB
Statistics
  • Stars: 25
  • Watchers: 3
  • Forks: 4
  • Open Issues: 1
  • Releases: 0
Created over 5 years ago · Last pushed 9 months ago
Metadata Files
Readme Changelog License Citation

README.md

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.

```bash

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.

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

USAGE: qecp

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

SUBCOMMANDS: fpgagenerator fpgagenerator 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.

```bash qecp-tool-benchmark 0.1.6 benchmark surface code decoders

USAGE: qecp tool benchmark [OPTIONS]

ARGS: [di1,di2,di3,...,din] code distance of vertical axis [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 [p1,p2,p3,...,pm] p = px + py + pz unless noise model has special interpretation of this value

OPTIONS: --biaseta <biaseta> 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:

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

An example result is below.

init 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)

Owner

  • Name: Yue Wu
  • Login: yuewuo
  • Kind: user

Computer Science Ph.D. student at Yale

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Wu"
  given-names: "Yue"
  orcid: "https://orcid.org/0000-0002-1400-0402"
- family-names: "Liyanage"
  given-names: "Namitha"
- family-names: "Liyanage"
  given-names: "Namitha"
title: "QEC-Playground"
version: 0.1.9
date-released: 2023-02-10
url: "https://github.com/yuewuo/QEC-Playground"

GitHub Events

Total
  • Watch event: 6
  • Member event: 2
  • Push event: 20
  • Create event: 3
Last Year
  • Watch event: 6
  • Member event: 2
  • Push event: 20
  • Create event: 3

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 739
  • Total Committers: 9
  • Avg Commits per committer: 82.111
  • Development Distribution Score (DDS): 0.314
Top Committers
Name Email Commits
Yue y****u@y****u 507
Yue w****6@p****n 169
leonana69 g****n@y****u 18
Neil He 9****4@u****m 17
NamiLiy n****e@g****m 11
Neil He n****5@g****m 8
m24639297 m****7@g****m 6
NamiLiy 3****y@u****m 2
Yue Wu y****9@g****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 27
  • Average time to close issues: N/A
  • Average time to close pull requests: 5 days
  • Total issue authors: 0
  • Total pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 0.11
  • Merged pull requests: 23
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 1.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • yuewuo (21)
  • 784956494 (3)
  • YangLiuWillow (2)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 60 last-month
    • cargo 16,151 total
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 15
  • Total maintainers: 2
pypi.org: qecp

Quantum Error Correction Playground for Surface Code Research

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 60 Last month
Rankings
Dependent packages count: 6.6%
Stargazers count: 16.6%
Forks count: 19.6%
Average: 21.1%
Dependent repos count: 30.6%
Downloads: 32.0%
Maintainers (1)
Last synced: 6 months ago
crates.io: qecp

Quantum Error Correction Playground for Surface Code Research

  • Versions: 12
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 16,151 Total
Rankings
Forks count: 24.8%
Stargazers count: 26.4%
Dependent repos count: 29.3%
Dependent packages count: 33.8%
Average: 36.2%
Downloads: 66.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

visualize/package.json npm
  • canvas ^2.9.1
  • gl ^5.0.0
  • jimp ^0.16.1
  • jsdom ^19.0.0
  • three ^0.139.2
  • vue ^3.2.33
.github/workflows/wheels.yml actions
  • actions-rs/toolchain v1 composite
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • actions/upload-artifact v3 composite
Cargo.lock cargo
  • 189 dependencies
visualize/package-lock.json npm
  • 339 dependencies