Chapter 2: Implementation

In this section, we will discuss the gory details that make quantum computing difficult to implement physically. We will then examine some of the many different architectures that are being developed for future quantum computers and compare their relative strengths and weaknesses.

A warning: Moreso than the previous section, the information contained here may go out of date. It’s possible that some of these technical approaches will become dominant, and others will lead to intellectual dead-ends. Progress in these fields is actively occurring, and in some cases, moving rather fast. As such, while I will describe the current state of the field, I will focus on the basics – e.g. how does a superconducting transmon qubit work, rather than the details of Google’s Willow superconducting quantum processor.

Qubits in Practice, Not Theory

Recall our discussion from Chapter 1 regarding classical bits: We currently implement these bits as voltage levels, stored in memory and processed by logic gates implemented by transistors in silicon. This is a choice informed by decades of semiconductor engineering, but it is equally possible (however much less scalable) to implement classical bit-based computation using light switches, tanks of water, or cans of soup. Anything where we can encode two different levels (logical 1 and logical 0) can be used as a bit. The trouble of course, is interacting with those bits in a scalable way: we’ve settled on transistors because we can create billions of them and easily control them.

Qubits are a bit more… finicky. Our qubits need several unique properties: superposition & entanglement. Unfortunately for quantum computer engineers, most things around us don’t seem to obey quantum properties on the macro- scale. I can’t put my light switch in a superposition! So we have to look for specific qubit ‘platforms’ which have a quantum nature. This naturally leads us to several of the most promising qubit technologies: photons, atoms, & ions. The last of the big four implementations is superconducting qubits, which exist on a larger, non-atomic scale, but utilize the properties of supercooled semiconductors to access quantum effects.

In each of these cases, we have to encode the state of the qubit ($\ket{0}$ or $\ket{1}$) in some specific physical property of the qubit. This could be the spin of the photon, the frequency of some vibration, or the energy of the system. This varies in each of the platforms, as does the mechanism of interacting with the system (implementing gates and measurement).

Fragile Qubits

Real-world qubits are inherently fragile. While I can turn my laptop off for several months and expect to come back to the system in the same state with my data uncorrupted, it’s a tall order for a qubit to last seconds in the same state. We know definitionally that quantum states can be affected (collapsed) by outside measurement. It’s not a very far leap to say that those quantum states can be similarly affected by any interaction with the outside world.* We can spend a lot of time precisely engineering the qubit system and still have our qubits end up in different, unknown states. This is called ‘decoherence’, and a critical metric for any quantum computer is how long a qubit can last before decoherence occurs. You’ll often actually see two relevant metrics for decoherence times, known as $T_1$ and $T_2$. $T_1$ is the time a qubit can stay in the $\ket{1}$ state, before it drops back down into the lower-energy $\ket{0}$ state. $T_ 2$ relates to the phase coherence of a state – i.e. how long can it last in a specific phase before that information is lost. Clearly, engineers would like to maximize both values to create stable, long-lived qubits.

This also explains why lots of quantum computers need to be supercooled or placed into a vacuum: They want to avoid heat and interference from their environment! There’s a popular misconception that the massive, upside-down steel cylinders shown in press photographs and Fig. 1 are computers themselves, when they are just dilution refrigerators, specifically used for cooling superconducting quantum computers to tens of milli-Kelvin. These fridges have concentric inner partitions that progressively cool the system down to the working temperature. In other qubit hardware implementations, that temperature varies, but it is typical for the system to require some level of cooling, vacuum, or isolation from the environment.

dilutionFridge
Figure 1: A labeled diagram of a dilution refrigerator. The first cooling stage at the top would exist somewhere around 30-50K, while the superconducting qubits would sit at the bottom at  10s of millikelvin. Reproduced from Onri Jay Benally on Wikicommons

So even with careful engineering, noise will occur. Our wonderful little qubits will begin to decohere, and the state that they we think they are in may not be the state they are actually in. And here, we get to potentially the most vexing, complicated, and misunderstood topic in all of quantum computation: error correction.

Qudits

We’re about to start talking about real world systems that we use to implement the theoretical concepts we call qubits. In each case, there is some property of the system that exhibits quantum behavior as it transitions between some set of states. In some cases, it may be that the quantum system can exist in more than two states. In those cases, one state will be assigned to $\ket{0}$, and another to $\ket{1}$. Those other states are typically considered undesirable leakage states. However, there is some interest in actually using those other states for computation.

The other states are labeled in bra-ket notation, and increment up from $\ket{1}$: $\ket{2}$, $\ket{3}$, etc. These systems are called ‘qudits’ (notice the D), after systems with ‘D’ levels. For this work, we won’t consider any qudit-based computation schemes, and all states greater than $\ket{1}$ are unwanted errors!

Error Correction Cliff Notes

I apologize. I’ve billed this section as being about the practical concerns of quantum computer implementation, and you’ve probably thought we would be talking about engineering problems. Real fun hardware implementation questions, with cool photos of semiconductors and atoms and lasers and the like. We will get to that, but first we need to do some more theory and math. You’re welcome to skip this section, but just know that error correction knowledge is what gives you real credibility on the mean streets out there. All the kids will laugh at you when you admit you don’t know what a qLDPC code is.

To save you embarrassment, I’m going to summarize all the important takeaways of error correction up front. In the next sub-section, we’ll do some math and familiarize ourselves with a surface code, but these are the practical concepts you should have in your mental model of error correction.