The theory and practice of quantum computing have both developed dramatically in recent years. At the top, advances in theory and algorithms have taught us much about the nature of computational complexity and broadened the range of potential uses of quantum computers. At the bottom, physicists are investigating a breathtaking array of potential qubit storage and quantum gate technologies.
The "missing link" in the middle is the domain of quantum computer architecture. As we move from small quantum computing devices, consisting of a few qubits, to larger systems, there are many engineering obstacles which will ultimately determine the implementability and utility of a quantum computer. Most center around scaling up the storage capacity and gate execution rate to attack computational problems large enough to be interesting. A few of these obstacles are:
* The logical topology of the machine - which qubit storage locations can directly interact with each other. These communications costs will impact both the circuit depth and asymptotic gate count.
* Efficient mapping of application algorithms to specific architectures.
* Efficient implementation of quantum error correction (QEC) and fault-tolerant logical gates.
* Use of different qubit storage technologies with varying storage fidelity and gate execution times in different roles in a complete system.
* Integration of classical control and computation with quantum computation.
* Control of skew and jitter in large-scale quantum circuits.
* Compilation of quantum programs for real architectures.
The Aqua project is advancing the state of the art in several of these areas, as detailed on the related web pages.