Quantum computing hardware tends to garner the lion’s share of the attention from the press, but it’s the software toolkits for these devices that will be key to moving this technology out of the research lab. One of the more widely used of these is Qiskit, a set of open source quantum computing tools and libraries developed by IBM Research and now a critical piece of IBM’s Q strategy . We recently got the chance to speak with Ali Javadi-Abhari, a lead Qiskit developer, who gave us a tour of the software’s capabilities.
Before we dive into the particulars, it should be noted that every vendor with designs on universal quantum computing, with the exception of Intel, is now offering some sort of open toolkit to help developers get a handle on these qubit-based devices. Google has its Cirq, Riggetti has its Forest, and Microsoft has its Quantum Development Kit. Even Atos, a company that has yet to delve into quantum computing hardware, offers a Quantum Learning Machine (QLM) simulator. There are also a number of independent software development kits out there, including ProjectQ, XACC, and Qibo, just to name a few
If we go by the number of Google Scholar references on the subject, Qiskit is far ahead of the others, showing up in close to 200 research papers. Undoubtably, part of its popularity is a consequence of Qiskit’s use in IBM’s Q Experience, the company’s free-access cloud for its quantum computing technology. Over 85 thousand users have tapped into the cloud, running more than 4 million experiments. Qiskit is also used in IBM’s Q Network, the company’s commercial quantum computing offering that claims dozens of paying customers.
Keep in mind though, we are still in the early days of this technology. Despite IBM’s ability to draw customers to it 20-qubit hardware and declare they’ve built the world’s first quantum computing system for commercial use, there are no production codes running on any of these machines today. Dominant platforms – either hardware of software – are unlikely to emerge until a true commercial market is established
In that sense, Qiskit, which stands for Quantum Information Software Kit, reflects where the state-of-the-art is today. Many of the tools and libraries provided are low-level, oriented toward quantum circuit engineers and physicists, while others, like its Python programming interface and support libraries are designed with the application developer in mind. All the elements have APIs that are available to users.
According to Ali Javadi-Abhari, ultimately they wanted to draw in users from different perspectives who were interested in experimenting with both circuit design and application work. “Part of the reason we made this open source is that they can try out their own ideas,” he explained.
Javadi-Abhari says the tookit is broken into four pieces, echoing the four classical elements: Terra (earth), Aer (air), Ignis (fire), and Aqua (water). Each is oriented toward different kinds of quantum computing development. We’ll take them in order.
Terra is the foundational component of the toolkit. Javadi-Abhari says it’s the one closest to the hardware and is provides and interface between the application code and the level of circuits and pulses (so yes, really low-level). It can compile and optimize code for particular hardware devices. Some of this capability normally gets hidden in the compiler, but here it’s accessible so that computer scientists can build and play with different kinds of quantum circuitry.
Aer is Qiskit’s quantum computing simulator. As such, it mimics quantum devices on conventional hardware, incorporating noise models and other quantum effects. The challenge here, says Javadi-Abhari, is having to deal with the limitations of classical hardware in simulating quantum mechanical behavior.
Ignis is a set of tools designed to improve the characteristics of the quantum circuitry in order to reduce the effects of noise and errors. They’re designed to develop better error correction or explore things like dynamical decoupling and pulse shaping. A quantum physicist is the most like user of these tools, says Javadi-Abhari.
Aqua is a library of algorithms and is aimed at developers who want to build quantum applications in areas like computational chemistry, artificial intelligence, and other optimization types of codes. So, for example, the chemistry package can be used to study the behavior of a particular molecule. Javadi-Abhari notes although Aqua is aimed at domain experts, quantum algorithm developers can also contribute their own implementations to the library.
Javadi-Abhari says a lot of thought went into the Qiskit’s design, especially with regard to its modularity and extensibility. They had a long-term vision for this software and didn’t want impede developers with preconceived notions of how things should work or which applications are relevant. And even though the toolkit is an IBM invention, “people are essentially building their own things,” he says.