Skip to main content
4 votes
Accepted

What is the best way to parallelise processes across multiple cores when computing logical error rates with Stim and PyMatching?

(Sounds like you want sinter. In particular you should check out sinter.collect. It's for exactly this task, but supports additional features such as the ability to ...
Craig Gidney's user avatar
  • 38.5k
4 votes
Accepted

How to force PyMatching into the opposite equivalence class

As you noted in your self-answer, you can force pymatching to attach to a boundary an even or odd number of times by turning the boundary into a detector node and forcing its value to be 0 (attach ...
Craig Gidney's user avatar
  • 38.5k
2 votes
Accepted

PyMatching.Matching.decode() returns incorrectly sized array

The circuit you're generating only contains one logical observable, and pymatching is predicting whether that single logical observable is flipped or not. One logical observable therefore one output ...
Craig Gidney's user avatar
  • 38.5k
2 votes
Accepted

Pymatching shows a large timing distribution to decode the same set of syndromes

I couldn't reproduce this. Here's what I get for most of the output from the above (replacing time.time() with ...
ChrisD's user avatar
  • 316
2 votes

Are there open source implementations of quantum error correction decoders?

I've recently released an open-source implementation of the belief-matching decoder, available on GitHub and PyPI.
oscarhiggott's user avatar
2 votes

Are there open source implementations of quantum error correction decoders?

The following packages contain decoders and can be used with Python: PanQEC: Sweepmatch and Belief Propagation with Memory effect QECC: Union-Find decoder BPOSD: Belief propagation + OSD ...
Peter-Jan's user avatar
  • 1,574
2 votes
Accepted

How to compute Z logical operators of a toric code using Kunneth theorem?

I don't understand why and how to get $\mathcal{H}_0$ and $\mathcal{H}_1$ The repetition code can be written as a chain complex $$ C_1 \xrightarrow{\partial_1} C_0, $$ For example for the distance 4 ...
Peter-Jan's user avatar
  • 1,574
2 votes
Accepted

What is OBSERVABLE_INCLUDE in Stim and what is usefulness Pymatching

For this circuit, the OBSERVABLE_INCLUDE considers the overall parity of the measurements of the qubits 1, 3 and 5 (figure attached). Why is that the case? Writing down a whole topological class of ...
Craig Gidney's user avatar
  • 38.5k
2 votes
Accepted

Is it possible to adjust the weights of a pymatching graph after it is created?

Yes. ...
Abdullah Khalid's user avatar
1 vote

explain_detector_error_model_errors complains "no single circuit error had these exact symptoms"

That method is for turning the detection events of a single dem error into possible circuit errors causing that dem error. It doesn't do general decoding, as that is way way harder. So it doesn't work ...
Craig Gidney's user avatar
  • 38.5k
1 vote

Sinter, decode_to_edges_array

No, sinter doesn't support that. Also there are no plans to add it, since many decoders don't pick a specific set of edges in this way. You'll have to use python multiprocessing for yourself in this ...
Craig Gidney's user avatar
  • 38.5k
1 vote
Accepted

How can we decode non CSS codes like XZZX code with Pymatching?

Where are you getting the idea CSS codes are "more matchable"? That's not true. I'm not even sure why you'd think it's true. The XZZX and CSS surface codes have identical decoding graph ...
Craig Gidney's user avatar
  • 38.5k
1 vote
Accepted

How can I use surface code measurement data produced with Qiskit to run matching algorithms (e.g. PyMatching)?

If you can build your noiseless circuit as a stabilizer circuit, specifically as a stim circuit with DETECTOR and ...
Craig Gidney's user avatar
  • 38.5k
1 vote
Accepted

Pymatching: Will starting with arbitrary weights affect the MWPM decoding process?

does this mean that input weights have no effect on the decoding process? Input weights matter a lot. If you set all the weights to the same thing, creating an unweighted decoder, performance is ...
Craig Gidney's user avatar
  • 38.5k
1 vote
Accepted

Using Pymatching to decode lattice surgery process

There's nothing fundamentally different about getting pymatching to decode lattice surgery instead of memory. Make a stim circuit describing the exact operations that implement the surface codes being ...
Craig Gidney's user avatar
  • 38.5k
1 vote
Accepted

Pymatching: 'Matching' object has no attribute 'decode_batch'

Make sure you're on the latest version. pip install --upgrade pymatching.
Craig Gidney's user avatar
  • 38.5k
1 vote

Using Deterministic Errors in Stim Detector Circuit and decoding with Pymatching: X_ERROR(1) failing in PyMatching

If you're trying to enumerate how errors are corrected, you shouldn't be telling pymatching which errors you are inserting. It will just end up correcting them perfectly (once this probability 1 ...
Craig Gidney's user avatar
  • 38.5k
1 vote

Can Stim and PyMatching analyze logical error rate of non-deterministic observable?

Pymatching implicitly supports non-deterministic observables, because it's only trying to predict whether the observable is flipped and this prediction does not care about whether or not the ...
Craig Gidney's user avatar
  • 38.5k
1 vote
Accepted

Do detection events mean temporal and spatial coordinates?

A detector is an assertion that some set of measurements has deterministic parity under noiseless execution. A detector produces a detection event when this parity is different from what was expected. ...
Craig Gidney's user avatar
  • 38.5k
1 vote

Using PyMatching for CSS code with more than two Stabilizers per qubit

PyMatching is a decoder based on matching. It fundamentally relies on an assumption that errors produce pairs of detection events (or a single detection event next to a boundary), and decoding is done ...
Craig Gidney's user avatar
  • 38.5k
1 vote
Accepted

Check_matrix in Pymatching and Understanding the Plot

The networkX visualizations of the surface codes tend to be a little squished unfortunately. What you are looking at is the same as the image below, just slightly distorted. This image should be more ...
Ian's user avatar
  • 94

Only top scored, non community-wiki answers of a minimum length are eligible