With the arrival of the “first commercially available quantum computer,” the D-Wave One, we look at what it is and what open source can contribute.
In the observable world that we inhabit on a daily basis, any given object typically has separate, well-defined sets of states: it either is or it isn’t. Everything else is merely variations on that theme.
In the domain of quantum mechanics, where effect can sometimes precede cause and other such wacky constructs, states can actually be something quite a bit less defined: something in between. Instead of a ball being red or blue, for instance, it can be purple. But not just any one shade of purple: It can be more reddish, more blueish, or anything in between – at the same time.
Mind blown yet? Just you wait, because what’s coming down the road soon will be a type of computing that will use such quantum states to compute solutions to problems at unimaginable speeds.
Molest Me Not With This Pocket Calculator Stuff
Linux and open source technology have long dominated the supercomputer sector. The latest report reveals that 462 of the Top 500 Supercomputers use the Linux operating system. Windows? Two supercomputers. Our open source cousin BSD? One.
It’s easy to gloat about the dominance of Linux in this sector (I just did), but while Tux is rocking the world of mega-computers, these systems pale in comparison to the potential of quantum computing. The Canadian vendor D-Wave Systems makes the world’s first commercial quantum computer, the D-Wave One, a system that they claim has managed to use quantum computing to find the best way to fold a protein.
Proteins can be folded in many ways because they’re composed of many chains of amino acids. For a computer, protein folding is a massively complex physical and mathematical puzzle that can take huge resources on even supercomputers. It’s the kind of problem that requires a scientist to outsource computations to helpful volunteers’ systems with distributed computing [http://folding.stanford.edu/English/HomePage], but it’s a problem that needs solving because when proteins don’t fold themselves correctly, the results can be diseases like Alzheimer’s, Huntington’s, and Parkinson’s.
Scientists think that proteins fold themselves correctly because the correct configuration is also the state of lowest energy, the state at which the protein becomes stable. These lowest energy states were what the D-Wave One was set to find, and it seems to have accomplished it – a big step in demonstrating that it is truly a quantum machine (although the jury is still out on that question in some camps).
So how did the D-Wave One perform this Herculean task? For that answer, I’ll introduce a very famous feline.
Really, I Feel Fine
The most classical way of visualizing quantum mechanics is using the example of poor Schrödinger’s cat, a thought experiment to visualize the nature of simultaneous quantum states.
Take a cat, stick it in a box. Attached to the sealed container is a mechanism that contains a radioactive substance that may or may not decay while the cat is in the box. If the decay does happen, it triggers the release of a poison gas within the box and the cat dies. If it doesn’t decay, the cat lives to mouse another day.
Besides hating cats, this Schrödinger guy was onto something: Using this thought experiment you can imagine what having more than one state at the same time would be. Until you open the box later and actually observe whether the cat is dead or alive, you don’t know. The life of the cat depends on the quantum effect of the radioactive decay. While the box is closed, the cat exists in both states: a probability wave that keeps going until someone comes along to find out what happened to the cat.
It gets better: The many-worlds theory of quantum mechanics suggests that once the box is opened, an observer in one universe will find a finished feline and an observer in another universe will find a frisky feline. The simultaneous, coherent, dead–not-dead state of the cat undergoes decoherence when observed. The wave collapses and we are left with one state.
Of course, in the many-world theory, where all states are theoretically possible, in one universe that cat could have jumped out, killed the physicist in revenge, and gone off to invent cat litter and die of a catnip overdose years later. This is a very unlikely outcome statistically, and that’s important to understand. Yes, all states are possible within a coherent probability wave, but only those with the highest probability have a chance of being observed when the wave collapses.
Bit By Qubit
The idea of applying this kind of indeterminant-state phenomenon to a machine for computational purposes has been around for a while, but really started moving from the theoretical to the physical around the turn of the 21st Century, when innovation in quantum computers really revved up.
At the heart of a quantum computer lies the qubit, a piece of information that is analogous to a classical bit in a binary processor. A bit can be in one or two states: on or off. This binary form of switch forms the basis for every computer processor (and transistor).
But qubits can exist in the state of coherent superposition described above, meaning they can be in many states at the same time. This means that for all intents and purposes, you can work on many computational algorithms at the same time. How many? It depends on the number of qubits you have in a quantum computer: it’s 2^x, where x is the number of qubits. A single qubit can work on two calculations at once. A two-qubit system can work on four simultaneous computations. A 128-qubit system – like the D-Wave One – is reported to be? 340,282,366,920,938,463,463,374,607,431,768,211,456 calculations. At the same time. If a petaFLOPS is a quadrillion calculations per second, and a brontoFLOPS is a quadrillion teraFLOPS, then a 128-qubit machine can churn out the equivalent of 340,282,366,921 brontoFLOPS.
Currently, the world’s fastest supercomputer is Sequoia, an IBM BlueGene/Q system installed at the Department of Energy’s Lawrence Livermore National Laboratory, which gets up 16.32 petaFLOPS. Sequoia would not only eat D-Wave One’s dust, it would eat nearly every dust molecule in the universe.
A few limitations keep D-Wave One from outthinking every computer ever. The first is actually determining results. Like the infamous cat, if you were to try to observe the state of the qubits to get a particular solution to a problem, the act of observing the qubits would instantly collapse each qubit down to one state. So quantum physicists use a trick known as entanglement that lets the states within the qubit be indirectly observed at a distance.
Another limitation is, frankly, very few people on the planet actually understand this stuff and can develop the best algorithms for these systems to use. There are no programming languages for building quantum applications – yet.
However, this is a problem open source might once more step in and solve.
Although the D-Wave One does not yet have a distribution of Linux, developers interested in working with and visualizing quantum computing can use open source tools to help get started.
- jQuantum. jQuantum is a program that simulates a quantum computer. Users can design quantum circuits with jQuantum and let them run. The current state of the quantum register can be visualized. GPL.
- Squankum. Squankum is a quantum computer simulator that enables the visualization of a single qubit. You can also observe the representation on a Bloch sphere [http://en.wikipedia.org/wiki/Bloch_Sphere], a useful tool for understanding many-state situations. GPL.
- Q++. Q++ is a cross-platform C++ template library used for simulating quantum computation. Q++ enables testing of quantum algorithms by providing a quicker way to create programs compiled for speed. LGPL.
- Quantum Toolkit. A quantum mechanical toolkit and 3D viewer for C++, this app enables visualization via images, surfaces, and volume plots using OpenGL. GPL.
Many more quantum computing simulators are out there – not all of them open source. A great resource can be found on the Quantiki wiki site.
High-performance computing represents the cutting edge of where Linux is now. Thanks to accessible open source tools, quantum computing could soon be within our grasp as well.