QVM <-> pyQuil Pain Points
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.5k
- Forks
- 358
- Avg merge
- 1d 58m
- Merged PRs (30d)
- 4
Description
This is a general list of issues that can be broken out into smaller issues, but I wanted to get them down.
Props to @ecpeterson for writing these. I'm just the messenger. In general, these center around how easy (or not easy) it is to use the QVM with pyQuil.
- QVM in density matrix mode returns density matrices when ‘wavefunction’ is requested. Should have a separate name in pyQuil, should check a different set of normalization conditions.
- QVM in density matrix mode offers possibility to return probability distribution. Is this call available in pyQuil? It requires different bit unpacking.
- QVM in stateful mode offers ‘apply for effect’. Expose this in pyQuil.
- Can bit unpacking be treated uniformly? Robert does
ctypescasting and Erik does numpy buffers and pyQuil doesstruct.unpack. - Where does this density matrix stuff sit relative to the
QVM <: QAMvsWavefunctionSimulatorsplit? There’s also aReferenceDensitySimulatorthat doesn’t belong to this hierarchy. - The Pauli heatmaps from process tomography is useful. Eric wrote some matplotlib code to generate them; he'd like to polish this for inclusion.
- How does one take the results of the
forest.benchmarkingprocess tomography code and extract from it data suitable for feeding into a tomograph plotter? Like there are standard methods for generating the data, but it would be nice to also have a standard munger to get it into the right form. - Eric would like to include the “cheater’s process tomography” code that he wrote for use against the density matrix QVM.
- Polish and publish Erik’s shared memory mode starter notebook, which is very useful.
- Legal density matrices obey a bunch of properties (e.g., Hermitian). Make it easier to edit density matrix shared memory w/o exiting this subspace. Eric wrote something to extract a representation as a PauliSum, which was already useful for me.
- Expose density matrix QVM in batch mode.
- Eric's first attempt at generating these tomographs was to couple the
forest.benchmarkingcode to my local QVM, and this was very slow: 5-10m for a 1% inaccurate picture of a 2Q operator. He thinks the bulk of the slowdown was in the communications layer; it would be worth profiling this and improving these repeated-call scenarios.
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
The issue names no specific files or tests; begin by splitting its twelve QVM and pyQuil pain points into focused issues and tracing the relevant QVM, pyQuil, and forest.benchmarking entry points. Done should be defined separately for each item, such as an exposed capability, a polished notebook, valid tomography data, or a measured communication improvement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- matplotlib, numpy, python
- Domain
- performance, quantum-computing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100