Noise models could use some TLC
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.5k
- Forks
- 358
- Avg merge
- 1d 58m
- Merged PRs (30d)
- 4
Description
We introduced the noise model functionality to pyQuil back in February 2018, along with our release of Forest 1.3. Since then, we have made a good number of changes to the structure of pyQuil, and it seems that the noise model functionality has been neglected. We are looking to reinvigorate this component of our SDK, as there have been many external feature requests related to noise models, and we additionally have made strides internally on noise-related projects.
Tasks:
- Supply code for easily generating noise models from benchmarking data @sophiaponte
- Regularly update the noise models for our currently available Aspen QPUs
- Hook up the QVM's new density matrix simulation functionality to pyquil @stylewarning
- Rethink the way in which we generate and apply noise models @sophiaponte @kilimanjaro
- Consider promoting the definition of noisy gates to a first-class instruction in Quil
- Standardize the way in which noise models are applied to Programs
Currently, the QuantumComputer object can be "noisy", meaning that it has a noise model lodged inside of it as a class attribute. However, all this means is that it handles the application of the noise model to the user-supplied Program object at runtime. This has caused some user confusion, and we may want to consider bringing noise models back "into the open" as they were in the past. But, it would be great to better understand use cases that might prefer the stateful QC approach.
Additionally, I know that @sophiaponte and @kilimanjaro have been doing some exciting innovation w.r.t. the way in which we define, compose, and apply noise models, so it would be great to get their input on this issue.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the QuantumComputer object and its noise-model handling, then review the existing pyQuil noise-model and QVM density-matrix integration points. The task list spans several possible redesigns and has no single completion criterion, so use the proposed work items and stakeholder input to define a narrower scope before coding.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend-api-design, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100