What is it?
What’s the next big thing in computing? Not the #AI or #blockchain’s of the world, that is starting to happen today (albeit a little early)? Quantum computing is one of those next big things, that is on the horizon (probably in the ~5 years range).
Why do I care?
Why do I care about quantum? Well, some problems are simply not solvable on convention digital computers – the kind we have today – these are called “classical” machines. Even if Moore’s law did continue (and that is a whole different debate), are the still some problems whose scaling obey a different set of properties and law; and the double of transistors on a chip wont really help. In fact, some of these problems require longer than the lifetime of the universe – and that is with the biggest, and fastest supercomputers available!
Quantum computing, is a paradigm shift in computing – it is moving beyond silicon and bits.
“If you think you understand quantum physics, you don’t understand quantum physics!
What are Quantum computers?
Quantum machines are different – they are machines based on properties of quantum mechanics compared to classical mechanics (i.e. machines we use today). The few characteristics that make quantum computers different are:
- Today’s computers, use transistors to manipulate bits as either 0 or 1; quantum computer encode information as qubits (quantum bits) and are not limited to bits in two states.
- Qubits are superimposed – can be both in a state of 0, or 1, simultaneously; furthermore they are also in all points in between 0 and 1 at the same time. This makes them inherently parallel at an exponential scale
- They are notoriously delicate! These need to cooled (-459F, which is 100 times colder than deep space) and the noise isolated to preserve the system’s integrity. This level of cooling and sensitivity, requires new and different (quantum) error correction techniques than what we are used to.
- There is a “No-cloning mechanism” i.e. one cannot copy the data/result to inspect it. Entanglement helps observe the result of a calculation whilst preserving the integrity.
- Hybrid machines – we need a classical machine to control a quantum machine – to program, hint/nudge in the right direction (remember they are sensitive and need different error correction), and, observe the collapsed state.
To put it in perspective, an entangled system of 250 quibits would require ~1080 bits to store classically. And that is more atoms that exist in the universe! And as implied, a quantum machine would only need 250 quibits to store those. A few more comparisons that might help:
- A terabyte needs: ~1012 bits
- A Petabyte needs: ~1015 bits
- A Exascale (possible in a few years) will needs: ~1018 bits
In the early days, most problem areas will be optimization problems – things that are very difficult, or not possible to do with classical computers today. Some vertical scenarios that one can think of:
- Privacy and Security – Example: Quantum encryption would need to be supersede current encryption techniques that underpin modern commerce
- Energy – Example: room temperature super conductivity (help address maglev transportation, lossless grid, etc.)
- Environment – Example: Carbon capture and not just at source (e.g. power plants), but throughout the environment
- Healthcare – Example: Personalized medicine and treatment matching the individual biome and genetic makeup
- Machine Learning – Example: New probability distributions, and new inferences which allows to ask a new question that isn’t possible today. Also exponential speed ups with better solutions and models – new (e.g. nearest neighbor classification)
- Cloud Computing
However, as if today, we don’t know what are the best questions to ask a quantum machine to answer – at least not yet.
Making it Real – Some examples
Example 1 – Encryption
I guess the pet example that everyone talks about is using encryption and the RSA 2K challenge – where in if you have a large number, such as the one shown below which is used as a key for encryption; when trying to find out the two large prime numbers that can provide the key – on a classical machine this will take 1 billion years; and on a quantum machine approx. 100 seconds. Needless to say that will have a significant impact on digital commerce and encryption and security in general.
Example 2: Simulating physical systems
Ferredoxin (Fe2S2) is a compound that is used in many metabolic reactions including energy transport in photosynthesis. When currently being used, one wastes a lot of resources as part of the process and one thing that would help is finding ground state of ferredoxin. However using this with a classical algorithm, that is an impossible task and is intractable. But with a quantum algorithm, this would be approx an hour (in 2015).
Another, similar example is the calculation of the reaction time of nitrogenase; this one can read in a little more detail as part of – clarifiying complex chemical processes with quantum computers.
Entanglement – what is it?
It is a fundamental property of quantum mechanics. It is a physical phenomenon where two particles interact with each other in ways that the state of one particle cannot be described independently of the other. The paradox here is that measuring either of the particles, collapses the state of the entire (entangled) system. One cannot directly observe the result of a quantum computer – if you try to look at the subatomic particles, you bump them, and thereby change their value. If you look at a qubit in superposition to determine its value, the qubit will assume the value of either 0 or 1, but not both (effectively turning our quantum computer into a mundane digital computer).
One aspect though is that the two particles aren’t necessarily next to each other, they can be miles apart, but still connected. This is what some call as the “spooky action” that in the past have upset few scientists, including Einstein. The way to observe the result is to preserve the system’s integrity and indirectly measure the result – using Entanglement. Apply an outside force to two atoms, it can cause them to become entangled, and the second atom can take on the properties of the first atom. So if left alone, an atom will spin in all directions. The instant it is disturbed it chooses one spin, (i.e. one value); and at the same time, the second entangled atom will choose an opposite spin, or value. This allows scientists to know the value of the qubits without actually looking at them.
Quantum Superposition – what is it?
It is another fundamental property of quantum mechanics where the state can be multidimensional, at the same time. Superposition is what makes a quantum machine inheritably parallel. A normal Turing machine can only perform one calculation at a time, a quantum Turing machine can perform many calculations at once – given the symbols are both 0 and 1 (and all points in between) at the same time. Similar to waves (say in a pond), any two (or more) quantum states can be added together (“superposed”) and the result will be another valid quantum state. And, that every quantum state can be represented as a sum of two or more other distinct states.
I also wanted to outline a more Microsoft specific view on Quantum computing and what is their perspective. Microsoft Research (MSR) has been doing research since late 90’s in Quantum, and their approach is topological quantum computation (different than the competition). They have a dedicated lab called Station Q and also Quantum Software Architecture – Liquid (LIQUi|>).
The photo below shows MSR’s primary research collaborators on quantum.
The above image, essentially is a large fridge cooling the quantum chip (below) to –459oF. And the various layers (discs) that one sees in the image below is how it the cooled down in the process. The quantum chip is at the very bottom (not visible in the photo).
LIQUi|> is quite interesting; it is a domain specific language (DSL using F#) and also has the tools required (compiler used for Quantum circuits and gates), and relevant optimization of those gates and circuits. It includes a simulator for Quantum circuit (up to 31 qubit) and you can download it from GitHub.
Remember, this is a hybrid situation; so they are also working on a classical computer to control the quantum computer. And as you can imagine, this isn’t for the fain hearted. This classical computer, needs to factor in and transpose various dimensions between the classical and quantum world; some things like communication, heat dissipation, quantum error correction, multiplexing, latency, clock speed, etc.
We certainly live in a very exciting time and this video below does a nice job to explaining some of the basic principles outlined in this post.