qecp


Nameqecp JSON
Version 0.2.3 PyPI version JSON
download
home_pagehttps://yuewuo.github.io/QEC-Playground/
SummaryQuantum Error Correction Playground for Surface Code Research
upload_time2023-05-13 01:53:55
maintainer
docs_urlNone
authorYue Wu <yue.wu@yale.edu>, Namitha Liyanage <namitha.liyanage@yale.edu>, Neil He <neilhe6345@gmail.com>
requires_python>=3.7
licenseMIT
keywords qec quantum-computing error-correction simulation visualization
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # QEC-Playground

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

![](visualize/demo.jpg)

<strong style="color:red;">[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.</strong>

## Installation

See the [QEC-Playground Documentation: Installation](https://yuewuo.github.io/QEC-Playground/guide/installation.html) 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](https://yuewuo.github.io/QEC-Playground/guide/cli.html) 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 <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.

```bash
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:

```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](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)
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://yuewuo.github.io/QEC-Playground/",
    "name": "qecp",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "QEC,quantum-computing,error-correction,simulation,visualization",
    "author": "Yue Wu <yue.wu@yale.edu>, Namitha Liyanage <namitha.liyanage@yale.edu>, Neil He <neilhe6345@gmail.com>",
    "author_email": "Yue Wu <yue.wu@yale.edu>, Namitha Liyanage <namitha.liyanage@yale.edu>, Neil He <neilhe6345@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/69/7f/aafe3c478eb43a8b5d79d463ef5a55ece0b5c4634654e6fdc2a217696b01/qecp-0.2.3.tar.gz",
    "platform": null,
    "description": "# QEC-Playground\n\nA research tool to explore Quantum Error Correction (QEC), primarily surface codes.\n\n![](visualize/demo.jpg)\n\n<strong style=\"color:red;\">[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.</strong>\n\n## Installation\n\nSee the [QEC-Playground Documentation: Installation](https://yuewuo.github.io/QEC-Playground/guide/installation.html) for the detailed instructions.\nA brief example is below.\n\n```bash\n# Download the Blossom V Library [Optional]\nwget -c https://pub.ist.ac.at/~vnk/software/blossom5-v2.05.src.tar.gz -O - | tar -xz\ncp -r blossom5-v2.05.src/* backend/blossomV/\nrm -r blossom5-v2.05.src\n\n# Install the Python Dependencies [Optional]\nsudo apt install python3 python3-pip\npip3 install networkx\n\n# Install the Rust Toolchain\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\nsource ~/.bashrc  # this will add `~/.cargo/bin` to path\ncd backend/rust/\ncargo build --release\ncd ../../\n```\n\n\n## Command-line Interface\n\nSee the [QEC-Playground Documentation: CLI](https://yuewuo.github.io/QEC-Playground/guide/cli.html) for the detailed instructions.\nA brief example use case is below.\n\nRun `cargo run --release -- --help` under `backend/rust/` folder to get all provided commands of backend program.\nThe 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.\nAn example output is below.\n\n```init\nQECPlayground 0.1.6\nYue Wu <yue.wu@yale.edu>, Namitha Liyanage (namitha.liyanage@yale.edu)\nQuantum Error Correction Playground\n\nUSAGE:\n    qecp <SUBCOMMAND>\n\nOPTIONS:\n    -h, --help       Print help information\n    -V, --version    Print version information\n\nSUBCOMMANDS:\n    fpga_generator    fpga_generator\n    help              Print this message or the help of the given subcommand(s)\n    server            HTTP server for decoding information\n    test              testing features\n    tool              tools\n```\n\nTo run a simulation to benchmark the logical error rate of decoder, run `cargo run --release -- tool benchmark --help`. An example output is below.\n\n```bash\nqecp-tool-benchmark 0.1.6\nbenchmark surface code decoders\n\nUSAGE:\n    qecp tool benchmark [OPTIONS] <dis> <nms> <ps>\n\nARGS:\n    <dis>    [di1,di2,di3,...,din] code distance of vertical axis\n    <nms>    [nm1,nm2,nm3,...,nmn] number of noisy measurement rounds, must have exactly the\n             same length as `dis`; note that a perfect measurement is always capped at the end,\n             so to simulate a single round of perfect measurement you should set this to 0\n    <ps>     [p1,p2,p3,...,pm] p = px + py + pz unless noise model has special interpretation of\n             this value\n\nOPTIONS:\n        --bias_eta <bias_eta>\n            bias_eta = pz / (px + py) and px = py, px + py + pz = p. default to 1/2, which means px\n            = pz = py [default: 0.5]\n        ......\n```\n\nFor 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:\n\n```bash\ncargo run --release -- tool benchmark [3] [0] [3e-2,2e-2,1e-2]\n```\n\nAn example result is below.\n\n```init\nformat: <p> <di> <nm> <total_repeats> <qec_failed> <error_rate> <dj> <confidence_interval_95_percent> <pe>\n0.03 3 0 567712 10000 0.01761456513161603 3 1.9e-2 0\n0.02 3 0 1255440 10000 0.007965334862677627 3 2.0e-2 0\n0.01 3 0 4705331 10000 0.002125248999485902 3 2.0e-2 0\n```\n\n\n## Change Log\n\nSee [CHANGELOG.md](CHANGELOG.md)\n\n## Contributions\n\nYue Wu (yue.wu@yale.edu): implement 3D GUI. design and implement interactive tutorial. propose and implement na\u00efve 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.\n\nGuojun Chen: collaborator of CPSC 559 course project: design GUI. design and implement machine learning based weight optimized MWPM decoder.\n\nNamitha Godawatte Liyanage: implement approximate MWPM decoder and FPGA related functionalities.\n\nNeil He: bind library to Python.\n\n## Attribution\n\nWhen using QEC-Playground for research, please cite:\n\n```\nTODO: arXiv link for related papers (probably the fusion blossom paper)\n```\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Quantum Error Correction Playground for Surface Code Research",
    "version": "0.2.3",
    "project_urls": {
        "Homepage": "https://yuewuo.github.io/QEC-Playground/",
        "Source Code": "https://github.com/yuewuo/QEC-Playground"
    },
    "split_keywords": [
        "qec",
        "quantum-computing",
        "error-correction",
        "simulation",
        "visualization"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5961e810d7e3c5092bd4aa983327a7e03a1f7f28c2d6d99ac087142039dd0f0",
                "md5": "59fee531f5bd82690552d0a058296cd6",
                "sha256": "3d04db979a1a8513c5b96e195c8248b6b3724660c868dc3ced6937cf5a3f7550"
            },
            "downloads": -1,
            "filename": "qecp-0.2.3-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "59fee531f5bd82690552d0a058296cd6",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3119225,
            "upload_time": "2023-05-13T01:49:30",
            "upload_time_iso_8601": "2023-05-13T01:49:30.476375Z",
            "url": "https://files.pythonhosted.org/packages/d5/96/1e810d7e3c5092bd4aa983327a7e03a1f7f28c2d6d99ac087142039dd0f0/qecp-0.2.3-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "004dac344afbafaeb13d921d7f21df5e455c110c1bcb3975b0dc06bff2308cb3",
                "md5": "42cbdbbc8d84e175a18d3dd1469a9c06",
                "sha256": "7ec1dc81e6eef9956f6ebb4df6e9a3ec905e3d3624d045afb69b81766d8b0c7a"
            },
            "downloads": -1,
            "filename": "qecp-0.2.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "42cbdbbc8d84e175a18d3dd1469a9c06",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 18573188,
            "upload_time": "2023-05-13T01:50:11",
            "upload_time_iso_8601": "2023-05-13T01:50:11.533681Z",
            "url": "https://files.pythonhosted.org/packages/00/4d/ac344afbafaeb13d921d7f21df5e455c110c1bcb3975b0dc06bff2308cb3/qecp-0.2.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d255180d13b16812375a474690fd1aa741d046d15a170f898e0859e310c6d761",
                "md5": "9142948f257c1a3d932c53d1d001cb5f",
                "sha256": "f64c24ce9fd015f6302b12da911bfd70b425a8c9e940130aff432d89de5cee47"
            },
            "downloads": -1,
            "filename": "qecp-0.2.3-cp37-abi3-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9142948f257c1a3d932c53d1d001cb5f",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 18617714,
            "upload_time": "2023-05-13T01:50:48",
            "upload_time_iso_8601": "2023-05-13T01:50:48.406912Z",
            "url": "https://files.pythonhosted.org/packages/d2/55/180d13b16812375a474690fd1aa741d046d15a170f898e0859e310c6d761/qecp-0.2.3-cp37-abi3-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bd634b6436f506fd4cbf5b477447d6fe45cad5a9c52514998ea28b763f791770",
                "md5": "c312cb133277844007ce9e601be72fce",
                "sha256": "17da15fc69cda26899e861b9e1cc82229af11e36d8a09ffbe0af03fddbe04121"
            },
            "downloads": -1,
            "filename": "qecp-0.2.3-cp37-abi3-win32.whl",
            "has_sig": false,
            "md5_digest": "c312cb133277844007ce9e601be72fce",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 1210007,
            "upload_time": "2023-05-13T01:50:56",
            "upload_time_iso_8601": "2023-05-13T01:50:56.877976Z",
            "url": "https://files.pythonhosted.org/packages/bd/63/4b6436f506fd4cbf5b477447d6fe45cad5a9c52514998ea28b763f791770/qecp-0.2.3-cp37-abi3-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3ad19ef81d8174dd214674a86937db99a870632ac29a4702944a746d4a73ea92",
                "md5": "880f8bf783d3d710a921cb24f46fe2e7",
                "sha256": "6fa5d674c3fce20cdee087cfff5d0793846651b0a571b200b55474dc3bd7979d"
            },
            "downloads": -1,
            "filename": "qecp-0.2.3-cp37-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "880f8bf783d3d710a921cb24f46fe2e7",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 1246839,
            "upload_time": "2023-05-13T01:51:01",
            "upload_time_iso_8601": "2023-05-13T01:51:01.802641Z",
            "url": "https://files.pythonhosted.org/packages/3a/d1/9ef81d8174dd214674a86937db99a870632ac29a4702944a746d4a73ea92/qecp-0.2.3-cp37-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "697faafe3c478eb43a8b5d79d463ef5a55ece0b5c4634654e6fdc2a217696b01",
                "md5": "c8fcbc58841de076f229d55f05a0b92a",
                "sha256": "3c6e110def6622fbe5df03a2b42bf4bdd902eceb7b31525a923288ee1ffc37f8"
            },
            "downloads": -1,
            "filename": "qecp-0.2.3.tar.gz",
            "has_sig": false,
            "md5_digest": "c8fcbc58841de076f229d55f05a0b92a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 611131,
            "upload_time": "2023-05-13T01:53:55",
            "upload_time_iso_8601": "2023-05-13T01:53:55.427891Z",
            "url": "https://files.pythonhosted.org/packages/69/7f/aafe3c478eb43a8b5d79d463ef5a55ece0b5c4634654e6fdc2a217696b01/qecp-0.2.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-13 01:53:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yuewuo",
    "github_project": "QEC-Playground",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "qecp"
}
        
Elapsed time: 0.06377s