Happy First Birthday, Qiskit!
We had no idea, when the IBM Q Experience first went online two years ago, how many people were interested in accessing a quantum computer. As the number of registered users grew, so did our amazement — not only due to the overwhelming enthusiasm, but also because the community (made up of educators, researchers, students, developers, and hobbyists) wanted to engage beyond running simple quantum circuits. Users were running batches by hand and attempting complicated experiments. How could we make it easier for them to run multiple circuits, analyze the results in different ways, measure quantum states, and sample complicated distributions?
Puzzling over this led to late-night coding sessions and philosophical arguments on software creation… and eventually it all converged on what is now Qiskit, released on March 7, 2017. No one can agree on how to pronounce it (quiz-kit, kiss-kit, cheese-kit), but it is our evolving effort to encourage the community to think even more creatively about quantum.
More specifically, Qiskit is a collection of software for building quantum programs, mapping them to different backend devices, and running them on simulators and real hardware. To date, users have run over 3 million remote executions on cloud quantum computing resources using Qiskit. Looking at the number of online executions vs time (below) we can really see the power of open source and what is enabled with Qiskit. There is a distinct jump in the rate of executions that correlates perfectly with the launch of Qiskit.
It has also resulted in an increase in the rate of research papers written using the IBM Q Experience. Enabling others to do research is one of the things of which we are most proud. It shows that the tools we are making are useful and practical.
Qiskit integrates with the IBM Q Experience cloud quantum computing platform and incorporates several simulator backends — including wave function, QASM, Clifford, and noise simulators. The circuit mapping framework expands gates to target hardware, re-maps gates to respect device couplings, and removes redundant operations. A batch job system remotely executes collections of quantum circuits on real hardware, and tools allow the user to simplify the way they build quantum circuits.
The ups and downs have been of roller-coaster magnitude! Version 0.1 was far from mature, but that was a conscious choice on our part to develop it in plain sight of the community, in the hopes that users would want to contribute and help steer its creation…and indeed, users have stepped up to meet the challenge. Since its appearance on github, Qiskit has seen 1300 commits, has been forked over 400 times, and has been starred over 1500 times. We currently have 50 contributors to the code base and interested users can join our community Slack channel to discuss shaping Qiskit’s future. Check out the Jupyter notebook tutorials that document Qiskit and the IBM Q Experience.
While the numbers for Qiskit are astonishing, we want to build the community further with even more teachers, students, and developers taking advantage of the Qiskit development platform. To this end, in January we launched a number of cash prizes. In fact, the deadline for the first prize, the Teach Me Qiskit Award, is coming up on 31 March. Get all of the details here.
Qiskit’s current version is 0.4.11. We have learned a lot this year about what went well and what needs improvement, so we have a lot planned for Qiskit’s future development; for example, tighter integration with the hardware via quantum object (qobj) and OpenPulse interfaces, and an expansion of the circuit-mapping framework into a user-configurable pass-based transpiler, in order to squeeze the most out of noisy intermediate-scale quantum computing hardware. Stay tuned — and join in!
Thanks to Abby Cross for her help writing this article.