Explore quantum
The quantum computing stack
The quantum computing stack
A “computing stack” is a conceptual description of the different layers of a computing system, from the physical implementation of computer chips, up through the control and instruction layers used to control and program the computer, all the way to the user interface that enables people to interact with the system. In quantum computing, the computing stack is analogous to its classical counterpart. The quantum computing stack describes the different layers of a quantum system, from the elementary particles used to store and compute information (the qubits), to the physical and logical systems that control and manipulate the qubits, all the way to the application layer, which includes high-level programming languages and algorithms used to program the quantum computer.
Programming a computer, whether classical or quantum, encompasses its own “sub-stack” of layers that typically includes a programming language layer used to write algorithms and computer programs, as well as a compiler / interpreter layer that converts the resulting source code into machine-readable instructions. Java, Python, C++, and JavaScript are examples of programming languages. It’s important to note that an algorithm, which is a step-by-step instruction set that solves a specific problem, is a theoretical concept and is not tied to a particular programming language or implementation. Rather, algorithms are implemented in a specific programming language and computer program. A computer program is a more general concept—it is a set of concrete instructions that implements algorithms and other general logic to solve a particular task or to generate a software application.
A quantum computing stack is typically comprised of the following layers:
Although the layers of the quantum computing stack, as described above, are very analogous to classical computing, there are several important implementation differences. The first, of course, is that a quantum computer uses elementary particles such as ions or photons to hold information, rather than voltages as used in classical computing. Another important difference is the way quantum computers handle errors and noise. Classical computing systems are designed to be highly reliable and deterministic. In contrast, quantum computing systems are inherently noisy and error-prone due to the fragility of qubits and the sensitivity of quantum states to environmental disturbances. As a result, quantum computing stacks have error rates orders of magnitude greater than classical systems and therefore require specialized techniques and algorithms for error correction and fault tolerance. This can add significant overhead and complexity to quantum computations. Despite these challenges, quantum computing has the potential to revolutionize a wide range of fields, from cryptography and optimization to materials science and drug discovery.