Current quantum computation efforts are the result of a long history of scientific achievements. The initial formulation of quantum mechanics in the 1920s and 30s gave us a fundamentally new understanding of the natural world. By the 70s, it was understood that this paradigm shift can also have implications for the way we compute. This was followed by fantastic algorithmic discoveries in the 80s and 90s, both highlighting the advantages of quantum computers and showing us how to control the abundant errors affecting such computations. With considerable progress in building stable, controllable quantum systems in the past decade, attention has now been turned to real, practical applications.
Today, with IBM Q, we are exploring the next stages of this evolution. My work sits at the intersection of algorithms and hardware, and asks how software architectures can be designed to enable near-term quantum applications. And anyone can contribute using the Quantum Information Software Kit, or QISKit.
The quantum stack
QISKit unifies three different levels of user:
QISKit is the software that sits between quantum algorithms from one side, and the physical quantum device from the other. It translates common programming languages like Python into quantum machine language. This means anyone outside of the IBM Q lab can program a quantum computer.
QISKit is an excellent educational tool to develop intuition about concepts in quantum information. It can also be an avenue to do science, ensuring that quantum devices can reliably be used by a diverse audience, and improving reproducibility of results. Through this wide access, we hope to also foster a community that can discover new methods and breakthrough applications.
There’s still a large gap between the computational resources available on current hardware versus the resources required for some of the oft-promised applications of quantum computers, such as integer factoring and molecule simulation. Research is progressing rapidly on how to increase the on-chip computational resources (i.e. number of qubits, fidelity of gates, and coherence time), and to design less resource-intensive applications (e.g. short-depth circuits). QISKit is a third axis to this effort, giving us a venue for managing resource overheads and to tailor applications for specific devices. With QISKit, developers might not have to wait years for more powerful hardware to emerge, or for the holy grail of fault-tolerant computation. In particular, an important task for the next few years will be to better understand the effect of noise, and how they affect final computation results. Access to a real quantum machine is invaluable in performing these studies realistically.
Follow QISKit on Twitter: @QISKit
The IBM Q Awards Developer Challenge
An important aspect of software optimizations for extracting the best performance from a given application-device pair is “qubit mapping”. Software architects need to write programs that take into consideration the hardware, connectivity, and available gates to “map” program-level qubits to on-chip qubits as quickly and efficiently as possible. If creating the first practical quantum app isn’t incentive enough, take the IBM Q Developer Challenge and earn up to $4,000. And if you’re at the Index Conference this week, come say “hello” at my QISKit talk.
Using QISKit: The SDK for Quantum Computing
Ali Javadi-Abhari, IBM Research
4:15 PM-5:00 PM | Wednesday, Feb. 21
Moscone West/Level 2, Room 2009
Session type: Breakout Session
Ali Javadi-Abhari is a Research Staff Member at IBM, where he works on IBM Q, an industry-first initiative to build commercially available universal quantum computers for business and science. His research is focused on building a scalable software stack for quantum computing. Ali is working on advancing QISKit, an open source SDK for interfacing with quantum computers and simulators. He holds a PhD in computer science from Princeton University, where he designed compilers and software tools for general-purpose, error-corrected quantum computation.