Skip to main content
QUICK REVIEW

[Paper Review] Sparse Blossom: correcting a million errors per core second with minimum-weight matching

Oscar Higgott, Craig Gidney|arXiv (Cornell University)|Mar 28, 2023
Quantum Computing Algorithms and ArchitectureComputer Science33 citations
TL;DR

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.

ABSTRACT

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.
Figure 1 : Key differences between the quantum decoding problem solved by PyMatching and the minimum weight perfect matching problem. In the usual MWPM problem, all nodes must be matched and they are matched using a disjoint set of edges. In the decoding problem, (a) only a subset of nodes is excite
Figure 1 : Key differences between the quantum decoding problem solved by PyMatching and the minimum weight perfect matching problem. In the usual MWPM problem, all nodes must be matched and they are matched using a disjoint set of edges. In the decoding problem, (a) only a subset of nodes is excite

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.
Figure 2 : (a) Augmenting an augmenting path. Matched edges become unmatched, and unmatched edges become matched. (b) Examples of two alternating trees in the blossom algorithm for finding a maximum matching. Each tree has one unmatched node. The two trees have become connected via the red dashed ed
Figure 2 : (a) Augmenting an augmenting path. Matched edges become unmatched, and unmatched edges become matched. (b) Examples of two alternating trees in the blossom algorithm for finding a maximum matching. Each tree has one unmatched node. The two trees have become connected via the red dashed ed

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.