Implementing error correction (from physical qubit point of view)

I have worked with physical qubits, and I am fairly familiar with gates and sequences from initialisation to readout. I don't know much about error correction, and I love to learn how error correction codes are implemented on real hardware. I have seen in different posts or blogs that people use quantum circuits (or probably other methods which I am not aware of) to show error correction. I am wondering if there is any (python) library or other forms of references that showed how to implement it on real hardware, using gates and sequences.

I know that error correcting codes require logical qubits, but I don't know how few physical qubits form a logical qubit in experiment (I guess this part of my question is highly platform dependant). I don't know if there is any free resources that help me to have a better understanding on this.

If there is any paper that did a good job in implementing error correction step by step, I'd be thankful if you share it here.

You’re right that you need logical qubits, and they’re structured according to a topological object known as a surface code. There are many papers by Dr. Austin Fowler covering this topic, and here’s one example: https://arxiv.org/pdf/1202.6111.pdf

Essentially, any qubit error is an X or Z error, and their respective matrices anticommute, which leads to the alternating structure of the surface code (comprising X and Z stabilizer circuits)

The Stim package by Craig Gidney implements tools for building quantum error correction circuits as well.

• If you want a good comprehensive introduction to surface code error correction, the best reference is still Fowler et al's arxiv.org/abs/1208.0928. But note that while their explanation of how to store logical information is still relevant, their explanation of how to do Clifford gates (braiding holes) is outdated. Jan 28 at 11:37
• Thanks a lot SamBurdick and JahanClaes (not sure why mention doesn't work) for suggesting that reference. Now, I have good references to start with. Skimming both, it seems the 2nd paper might require in-depth theory. I hope I can handle that, given my non-theory background. I guess I need to improve my theory to have a better understanding of error correction :) Also, thank you SamBurdick for suggesting Stim package. Definitely I will start to use it. Need to learn about stabilizer circuits and braiding holes as well. Thanks for mentioning them.
– Rex
Jan 28 at 12:22

As mentioned in the other comment, Fowler et al. 2012 (https://arxiv.org/abs/1208.0928) is a great reference. For more of an introductory read, I find these lecture notes from Dan Browne to be helpful also: https://sites.google.com/site/danbrowneucl/teaching/lectures-on-topological-codes-and-quantum-computation.

Several different physical qubit platforms have started demonstrating some core building blocks of quantum error correction in experiments. Here are some example papers that you might find interesting (of course it's not comprehensive):

The answer of how many physical qubits are needed for a logical qubit depends on several factors:

1. The desired error rate of the logical qubit.
2. The physical qubit fidelities in the given platform (e.g. two-qubit gate fidelity, idling errors, measurement errors etc.)
3. The quantum error correction code being used. In particular, there are some error correcting codes which can be more efficient than others.
4. Properties of noise in the system can also be exploited to reduce overheads.

Just to expand on point (1), getting to increasingly small error rates of the logical qubit requires increasingly more physical qubits. One can create a logical qubit with less than 10 physical qubits, but to get to very low error rates allowing for very deep circuits then you will likely want something hundreds to thousands of physical qubits per logical qubit.

• Thanks a lot @QuantumEngineer for your response. The lecture would definitely be an excellent starting point for me.
– Rex
Jan 29 at 9:52