Skip to main contentIBM 

New Qiskit design: Introducing Qiskit application modules

We’ve restructured Qiskit into more-focused application modules that target specific user groups.


6 Apr 2021

Matthew Treinish

Ali Javadi-Abhari

Stefan Wörner

When we launched Qiskit four years ago, our primary goal was to provide an open-source framework with an interface that helped people create and run programs on state-of-the art quantum computers. We were looking to introduce quantum computing to a wider audience, inviting programmers with varying levels of experience to experiment on our cloud-based systems, and to envision a time in the not-too-distant future when quantum computers would become an indispensable platform for businesses and other organizations.

Since then, we have listened closely to Qiskit users’ feedback and made frequent updates to the SDK to better-meet their needs. Such updates have, for example, provided pulse-level control that lets programmers more-effectively understand and work with ultra-precise pulses that stimulate qubits and manipulate their state. More recently, we introduced the Qiskit Optimization Module to create more of a “frictionless” experience for programmers that allows them to focus more on their programs and less on the ins and outs of how quantum systems work.

Now, we’re pleased to announce the first steps to evolving Qiskit, in-line with our development roadmap , and towards a true runtime environment that even better-reflects the needs of the developer community. We’re rearranging the framework’s original “elements” — Terra, Aer, Ignis, and Aqua — into more-focused application modules that target specific user groups, and plug into the tools used by experts in different domains.

After this release, we will have migrated the building blocks for algorithms out of what was formerly Qiskit Aqua, into the core of Qiskit — which allows developers to create quantum programs at the level of circuits and pulses. This will also include Terra’s new application-agnostic algorithms, introduced today, as well as four independent Qiskit Application odules: Qiskit Nature, Finance , Optimization and Machine Learning . These modules are replacing Aqua, which will be sunset in the coming months. And Ignis will eventually become Qiskit Experiments, written in a way that’s more modular and reusable.

In addition to splitting up Aqua, we’re introducing improvements to what are now Qiskit Nature and Qiskit Machine Learning. Qiskit Nature, initially optimized to primarily support chemistry applications, will be opened up to additional areas of science, including physics. Qiskit Machine Learning will streamline and extend the existing algorithms to match established interfaces, and will enable integration into PyTorch , an optimized tensor library for deep learning using GPUs and CPUs.

The new approach to Qiskit applications will also allow us to issue new releases in a more flexible way. Because chemistry is not bundled into Aqua with finance, for example, we’ll be able to update one of those applications without impacting the other.

Towards frictionless programming

These changes, and those to come, all work toward creating frictionless programming on our quantum computers. That makes it easier for programmers to find what they’re looking for and creates a lower barrier to entry for scientists, financial analysts and other domain expert non-programmers who care more about leveraging the power of quantum computing to solve specific problems than they do about quantum circuits or qubit coherence.

image of a badge earned by participants in our Quantum Developer Certification program.

A badge earned by participants in our Quantum Developer Certification program.

That mindset aligns with the Quantum Development Roadmap we outlined in February and complements our new Quantum Developer Certification program to help us create a diverse, global, cloud-based ecosystem of developers who use the quantum computing skills to advance science and technology in ways that, today, we can only imagine. All of these elements are crucial to making Qiskit more stable, and to expanding our Qiskit community from hundreds of thousands of programmers today to tens of millions in the coming years.


View documentation