# QISKit for quantum computation

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:

1. The high-level domain experts in fields such as chemistry, finance or AI who are not necessarily familiar with quantum.
2. Developers with some knowledge of quantum circuits who want to test real quantum advantages over classical computers.
3. Quantum mechanics experts who want to examine quantum computing pulses – the control of signals into and out of qubits.

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.