Many people are talking about the use and purpose of quantum computing of late, so we wanted to take an opportunity to talk about what Red Hat is doing around quantum computing. This first post will give an overview of a few of Red Hat’s activities with quantum computing, beginning with some background.
The Emerging Technology team in Red Hat’s Office of the CTO have formulated our general goal to define how the classical and the quantum spaces can be connected together. Broadly speaking, our goal is to use the OpenShift Container Platform to run and manage both classical as well as quantum applications, in essence running hybrid workloads in an open hybrid cloud.
At the moment, we certainly don’t know the full quantum problem space. But we are prototyping an easy-to-use interface that would bridge quantum and classical computers from a development and runtime perspective. For example IBM Quantum offers several real quantum computers and high-performance classical computing simulators through its IBM Quantum Experience with Qiskit.
Qiskit is an open source quantum computing software development framework for working with noisy quantum computers at the level of pulses, circuits, and algorithms. Currently, we are working to demonstrate how to use Qiskit on OpenShift to run a quantum computation on IBM quantum computers.
But before we get into the nitty-gritty, we need to get into what quantum computing is.
Enter the Quantum Realm
It is the goal of this blog series to explain the fundamentals of quantum computing and start to establish the best practices for running heterogeneous workflows in a mix of classical computing (using OpenShift) and quantum computing (using IBM Q Account). Although the potential of quantum computing has been anticipated for decades, we are now just seeing the realization of this promise by combining quantum with classical computing. In the first of this blog series, we discuss key concepts that are essential to understanding quantum computing. Subsequent blogs will pursue our approach to connecting the classical and the quantum spaces.
Quantum computers use principles of quantum theory to perform computations. Quantum theory is a fundamental theory in physics, dating back to the mid-1920, which describes the properties of nature on an atomic scale. In August 2009, a NIST team led by Jonathan Home unveiled the first small-scale device that could be described as a quantum computer. A decade later several major technology firms have entered the field or ramped up their efforts too – notably Google, Honeywell, IBM, and Microsoft. Quantum computing is based on quantum-mechanical phenomena such as superposition and entanglement to perform computation.
In quantum computing, qubits (quantum bits) are the basic unit of information. Qubits are the quantum equivalent of classical binary bits. But unlike classical binary bits which are more like switches, i.e they can be on (1) or off (0), qubits can be on |0) or off |1) or in both states simultaneously |0) + |1)/√2.
Superposition is the quantum mechanics phenomenon where one particle is in two quantum states at the same time. It is a hard scenario to imagine because our mind is tuned to classical computing where a bit can be either 0 or 1. Qubits can be in both states until they are measured. Once measured, the qubits collapse into one of the states that cannot be predicted in advance. This means that the probabilities of measuring 0 or 1 for a qubit are in general neither 0.0 nor 1.0, and multiple measurements made on qubits in identical states will not always give the same result.
Schrödinger’s Cat: Dead or Alive?
Erwin Schrödinger devised a thought experiment with a cat, a radioactive atom, and a flask of poison in a closed steel chamber. The decaying of radioactive atoms is both spontaneous and random.
If and when the radioactive atom decays, it releases the poison and the cat dies when it breathes the poison. Since it is a closed system, an observer outside the steel chamber has no means to tell if the cat is dead or alive, unless they open the chamber and see it themselves. An important thing to note here is that the observer cannot interact with the closed chamber, as any form of measurement ceases the “closed” property of the steel chamber. So for an outside observer, the cat is both dead and alive simultaneously. Whether the cat is dead or alive upon opening the chamber is unpredictable due to the nature of radioactive decay.
Entanglement of Superposition States
Entanglement is when a pair or group of particles generate, interact, or share spatial proximity in a way such that the quantum state of each particle of the pair or group cannot be described independently of the state of the others, including when the particles are separated by a large distance. These particles become intertwined inseparably, and in a way behave like a single object.
Say, you have two entangled qubits and take them far away from each other and then measure them. What do you expect to happen? As discussed earlier, we cannot predict what state a qubit will take until we measure it. Naturally, the qubits collapse into either identical quantum states, or each one collapses to a different state. It gets spooky now. Quantum particles in entanglement behave like a single object. So if you measure only one of the particles, the other particle will collapse as well. It gets spookier. No matter how far apart these particles are, both will collapse into identical states.
Experiments have been conducted where entangled qubits as far as 12,000 kilometers apart when measured, collapse into identical states. Entanglement is a primary feature of quantum mechanics which is lacking in classical mechanics and is the heart of the disparity between classical and quantum physics.
Superposition and entanglement are one of the reasons for the exponential speedup of quantum computing. In superposition, a qubit experiences the full range of values. Qubits share these values with each other using entanglement.
Quantum mechanics makes it possible to store and manipulate a vast amount of information in the states of a relatively small number of particles. Sharing mixed states speeds up computation, this is how qubits perform multiple calculations at once. It is absolutely essential that the qubit stays entangled during the calculation; otherwise, we are just using a simple, slow digital computer only performing one calculation at a time.
A single qubit may concurrently perform two calculations, 2 qubits may perform 4, 3 qubits 8, and so forth, producing exponentially increasing speed. Just 30 qubits can simultaneously perform more than one billion calculations. n qubits are capable of performing 2^n calculations simultaneously.
So, unlike a classical computer that gives only one answer for an input, a quantum computer can simultaneously calculate a bunch of possible answers for a single input by using quantum superposition. But you get only one of the answers at the end, randomly, with different probabilities for each of the answers. The key behind fast and reliable quantum calculations is to set up a superposition that calculates all possible answers at once and ensures that all wrong answers destructively interfere with each other. That way when you measure the outcome of the calculations, the result of your measurement is most likely the right answer.
Quantum Supremacy means that if you run a real problem on quantum computers, it outperforms classical computers. That is, quantum computers solve the same problem faster than classical computers.
Does this mean quantum computers will replace classical computers?
Quantum computers can solve every problem that classical computers can solve but it is not efficient to run all real-world problems on quantum computers. There are a set of problems that are best tackled by quantum computers. Problems including, but not limited to, breaking open RSA encryption and NP-complete problems like the traveling salesman and network flow. The Quantum Algorithm Zoo has a list of some quantum algorithms and their respective speed up in calculations. In the future, computing may involve running heterogeneous workflows in a mix of classical and quantum worlds. Identifying segments of problems that will be solved faster on quantum computers, and integrating quantum results into classical computing represent the near term future of quantum computing.
Coming up next…
In the next part of the series we will be talking about the Qiskit Operator. This Operator launches a development environment with an integrated Jupyter server and the required python packages for the visual representation of the results. This Operator enables quantum researchers and scientists to start implementing quantum algorithms without delving into the nuances of installation and configuration.