rigetti / rigetti/pyquil

API for advanced noise modeling should provide tools for Device-level noise model generation

Open
#391 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.5k
Forks
358
Avg merge
1d 58m
Merged PRs (30d)
4

Description

When writing complex algorithms and proposals a typical workflow looks like this:

  1. Write up and debug the code on the noiseless (perfect) QVM
  2. Add noise to the circuits and re-evaluate the performance under noisy conditions on the QVM
  3. Run it on the QPU

The current API to add advanced noise models to a program do not foster a single transition from step 1 to 2. The reason is as follows:

The QVMConnection does either take in simple X, Y, Z errors after 1Q operations and simple measurement noise, or you have to write a full Device specification which currently is non-trivial as there is no supporting functionality. Moreover, it does not allow to specify noise on gates that are not native to the underlying QPU gateset, e.g. I cannot specify the fidelity for a CNOT gate.

The more usable API to add advanced noise into my programs interleaves with the construction of a pyquil Program and hence forces the developer to re-write large chunks of the code developed in step 1, marking a disruption in the development workflow. On top of that the construction is fairly verbose and debugging it is complicated as the noise specifications happen in various different places, instead of a central location.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the QVMConnection API and the Device specification, focusing on how simple noise and full device definitions are currently supplied. Done means a coherent API supports advanced device-level noise, including non-native gates such as CNOT, without requiring major program rewrites.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.