What I mean when I say analog computer, or why I hate the gate model part 1. August 22, 2006
Posted by Geordie in General.8 comments
Today I’m going to talk about analog computers, but first I’m going to define what I mean by the term. Here is a beautiful definition from a beautiful paper:
…analog computation is quite different from the commonly used binary-digital computation. In the digital approach, you first devise an algorithm (a set of instructions for finding the solution to a problem), then execute each step of the algorithm in the manner of Boolean operation. In contrast, analog computation is concerned with no symbolic Boolean operation; instead it utilizes the properties of a physical system to perform the mathematical operations required for the solution.
Yeah that’s sweet.
Something important to note: The definition of analog computer I’m using is the one in the quote above. Note that NOWHERE does it say anything about continuous variables, etc, or any of the other additional stuff that sometimes people associate with analog computation. The core of the above is simply that an analog computer uses the natural physical evolution of some (hopefully programmable) system in order to solve a difficult computational problem.
If you’re interested in quantum computation, then it’s very important to understand the difference between the two computational models outlined in the above quote. In the “digital/gate” approach, algorithms are compiled to gates which are then “fed” to a circuit containing bits/qubits. In the analog approach, there are no gates; there is just the natural physical evolution of some system, which somehow is supposed to calculate something interesting.
Alot of research in quantum computation focuses on the “gate model” applied to quantum systems. Now if you know me you know I HATE the gate model. For various technical reasons (which eventually I’m going to enumerate) I don’t think gate model quantum computers are ever going to be commonplace.
This being said, the gate model is quite popular, and for many people learning about quantum computation, it’s the only model you learn about, which is a shame (since building them is verging on impossible). Some of the concepts people take for granted, such as the concept that noise is always harmful to quantum computation, really only apply to the gate model and aren’t generally useful concepts for other models of quantum computation.
OK so I hate the gate model. But I really love another model. It’s called adiabatic quantum computation.
Now we don’t exactly do adiabatic quantum computation (AQC) at D-Wave; our processors use a remarkable variant of it, developed internally here. Followers of our progress will note that we almost never talk about the technical details of what we’re doing. We are however going to disclose the computational model of the processor in order to show experts how it works “under the hood”. Stay tuned.
Anyway AQCs are analog computers. There are two very good papers that talk about how you might build an AQC using superconducting qubits here and here.
The way the AQC model works is that you build an array of qubits (say a square grid for example) with programmable couplers between qubits (see here for some published info on one of D-Wave’s programmable couplers). The settings of these couplers, together with individual biases (favoring one qubit state over the other) on each qubit, comprise the machine language of an AQC. The user of the AQC (1) starts the machine with all of the couplers turned off and all of the local biases favoring the 0 qubit state; (2) turns on a tunneling term between the qubit states of each qubit; (3) slowly turns off the tunneling term while tuning the couplers and local biases to their target values; (4) measures the final states of the qubits. That’s it. No gates.
There are alot of very nice features of the AQC model that make it MUCH easier to build one than a gate model quantum computer. I’m not going to go into all of them just yet (I’m going to later after our computational model paper publishes). So we must be giving something up, right? No! AQC is formally equivalent to the gate model in computational power.
It really is much easier to build an AQC (or its cousin cluster state QC, which is also an analog computational model) than a gate model QC. So why aren’t more people trying to build AQCs or cluster state QCs? I’m not sure exactly, but I think it is related to the interdisciplinary nature of this sort of development. In order to appreciate how much of a difference there is (practically) in difficulty between building two different hardware proposals, the input of a lot of engineers is needed.
Unfortunately, and to the field’s detriment, there are only a handful of places in the world where the type of infrastructure exists to separate practical models (such as AQC) from models that are probably only useful as theoretical abstractions (the gate model).
…analog computation is quite different from the commonly used binary-digital computation. In the digital approach, you first devise an algorithm (a set of instructions for finding the solution to a problem), then execute each step of the algorithm in the manner of Boolean operation. In contrast, analog computation is concerned with no symbolic Boolean operation; instead it utilizes the properties of a physical system to perform the mathematical operations required for the solution.