[Paper Review] Sparse Blossom: correcting a million errors per core second with minimum-weight matching
Introduces sparse blossom, a fast MWPM-based decoder for quantum error correcting codes that avoids all-to-all searches, enabling real-time decoding for surface codes at scale.
In this work, we introduce a fast implementation of the minimum-weight perfect matching (MWPM) decoder, the most widely used decoder for several important families of quantum error correcting codes, including surface codes. Our algorithm, which we call sparse blossom, is a variant of the blossom algorithm which directly solves the decoding problem relevant to quantum error correction. Sparse blossom avoids the need for all-to-all Dijkstra searches, common amongst MWPM decoder implementations. For 0.1% circuit-level depolarising noise, sparse blossom processes syndrome data in both $X$ and $Z$ bases of distance-17 surface code circuits in less than one microsecond per round of syndrome extraction on a single core, which matches the rate at which syndrome data is generated by superconducting quantum computers. Our implementation is open-source, and has been released in version 2 of the PyMatching library.
Motivation & Objective
- Motivate the need for real-time, scalable decoding for large-scale surface-code quantum computers.
- Develop a fast decoder for graphlike error models that directly solves the embedded MWPM problem on the detector graph.
- Improve over prior MWPM implementations by avoiding costly all-to-all searches and enabling real-time operation.
- Provide open-source software (PyMatching v2) to facilitate rapid simulation and hardware-ready decoding workflows.
Proposed method
- Define detector graphs from graphlike error models with edge weights w(e)=log((1-p)/p).
- Formulate decoding as minimum-weight embedded matching (MWEM) on detector graphs rather than traditional MWPM.
- Develop sparse blossom, a variant of Edmonds’ blossom algorithm that grows regions under a global priority queue to find MWEM efficiently.
- Handle negative edge weights by preprocessing to non-negative weights with minimal-distortion adjustments, as implemented in PyMatching.
- Prove the connection between MWEM and MWPM via the path graph construction and a three-step reduction (construct path graph, solve MWPM on it, reconstruct MWEM).
- Benchmark performance on distance-17 and distance-29 surface code circuits under 0.1% circuit-level depolarising noise, reporting microsecond-scale decoding on a single core.

Experimental results
Research questions
- RQ1Can a minimum-weight embedded matching formulation be practically solved directly on the detector graph for quantum error correction?
- RQ2How can the blossom algorithm be adapted to provide fast, real-time decoding for large-scale surface codes without all-to-all searches?
- RQ3What performance gains (speed and scalability) are achievable for MWEM-based decoders compared to traditional MWPM approaches?
Key findings
- Sparse blossom decodes X and Z bases of distance-17 surface code circuits in under one microsecond per round on a single core at 0.1% noise.
- At distance 29 with the same noise model, the decoder runs in 3.5 microseconds per round on a single core.
- The implementation substantially outperforms prior tools, enabling real-time decoding and scalable simulations.
- The decoder is implemented in PyMatching version 2 as open-source software (GitHub link provided) and can be used with Stim for rapid simulations.

Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.