  Achieving practical quantum advantage requires a classical decoding algorithm
to identify and correct faults during computation. This classical decoding
algorithm must deliver both accuracy and speed, but in what combination? When
is a decoder "fast enough" or "accurate enough"?
  In the case of surface codes, tens of decoding algorithms have been proposed,
with different accuracies and speeds. However, it has been unclear how to
choose the best decoder for a given quantum architecture. Should a faster
decoder be used at the price of reduced accuracy? Or should a decoder sacrifice
accuracy to fit within a given time constraint? If a decoder is too slow, it
may be stopped upon reaching a time bound, at the price of some time-out
failures and an increased failure rate. What then is the optimal stopping time
of the decoder?
  By analyzing the speed vs. accuracy tradeoff, we propose strategies to select
the optimal stopping time for a decoder for different tasks. We design a
protocol to select the decoder that minimizes the spacetime cost per logical
gate, for logical computation of a given depth. Our protocol enables comparison
of different decoders, and the selection of an appropriate decoder for a given
fault-tolerant quantum computing architecture. We illustrate our protocol for
the surface code equipped with a desktop implementation of the PyMatching
decoder. We estimate PyMatching is fast enough to implement thousands of
logical gates with a better accuracy than physical qubits. However, we find it
is not sufficiently fast to reach 10^5 logical gates, under certain
assumptions, due to the decoding delay which forces qubits to idle and
accumulate errors while idling. We expect further improvements to PyMatching
are possible by running it on a better machine or by reducing the OS
interference.
