Skip to main contentIBM 

Defining — and citing — the Qiskit SDK

A new paper offers fresh insight into the philosophy and design decisions that have informed the development of the Qiskit SDK, and provides a convenient, citable source for researchers looking to reference Qiskit in their own papers.


26 Jun 2024

Ali Javadi-Abhari

Matthew Treinish

Blake Johnson

Robert Davis

Qiskit first emerged in 2017 as an open-source software development kit (SDK), but since then, it has evolved into a comprehensive software stack delivering the world’s most performant software for building, optimizing, orchestrating, and executing quantum workloads. Today, the Qiskit SDK is just one component in this expanded software stack, but it remains vitally important. Its architecture, capabilities, and emphasis on the circuit model of quantum computation have all heavily informed the development of the rest of the Qiskit software stack. But why is the Qiskit SDK the way it is? What are the ideas and core principles that have brought it to its present state?

“Quantum computing with Qiskit,” a paper published recently on arXiv, tackles these questions by offering new insight into the philosophy and key design decisions that have informed the Qiskit SDK’s development since its initial launch. The paper provides a succinct overview of the SDK’s architecture and core components. It also offers a brief look at the bustling ecosystem of plugins, extensions, and other tools that have been built with and around Qiskit.

Perhaps most importantly, “Quantum computing with Qiskit” provides researchers with an authoritative and citable source explaining what Qiskit is and how researchers use it for quantum information science. See below for example citations. For full citation information, be sure to check the publication on arXiv.

The authors of “Quantum computing with Qiskit” include developers who helped build the very first version of Qiskit back in 2017, and who have seen firsthand how it has grown into the sophisticated, versatile tool it is today. Below, we review some of the most interesting takeaways from the paper, and share a few pointers on how readers can make the best use of it.

The Qiskit design philosophy

Even the most experienced Qiskit developers may learn something new from the paper’s exploration of the design philosophy that has shaped the Qiskit SDK we have today. That philosophy is defined by a few core tenets, including:

The importance of quantum circuits

Qiskit’s design philosophy is organized around the essential importance of quantum circuits. Qiskit defines circuits very broadly such that they can include any operation on quantum data, and this flexible framework empowers developers to represent quantum computation at many different abstraction levels using the same circuit model. Physics researchers can build low-level circuits to study noise and other quantum phenomena, while applications developers can build circuits at higher levels of abstraction. Qiskit handles the transition seamlessly so developers can spend more time focusing on their core research questions.

Modularity and extensibility

Objects in Qiskit are designed to be flexible enough that researchers can build new features and capabilities on top of them, and define them in the way that best suits their needs. Quantum researchers are always coming up with new experiments that the developers of Qiskit couldn’t possibly anticipate. A modular, extensible architecture means researchers can focus on customizing or extending one piece of the software without needing to re-engineer the entire framework. This core tenet of the Qiskit design philosophy has resulted in a vibrant Qiskit ecosystem with many open-source extensions that make Qiskit more versatile and powerful.

Performance and usability

Prioritizing performance and usability means Qiskit code should work fast, but it should also be usable and easy to learn — two goals that sometimes conflict. For example, from day one, Qiskit has primarily been written in Python, but Python isn’t the fastest of programming languages. To boost performance for the launch of Qiskit v1.0, Qiskit’s most computationally intensive internals were re-implemented with the much faster Rust language. This switch gives Qiskit developers the best of both worlds. They reap the benefits of the performance improvements that come with the Rust implementation, but they can continue to interact with Qiskit using familiar Python syntax.

Qiskit by example

Beyond its overview of the Qiskit design philosophy, the new paper also includes a detailed, end-to-end example of a workflow that uses Qiskit to solve a challenging problem in condensed matter physics. The example highlights some of the specific capabilities and features that make Qiskit so powerful.

In particular, the paper calls attention to the retargetability of the transpiler, a key feature that makes Qiskit much more versatile. Qiskit is very flexible in its ability to target a variety of different backends, so if you add new gates to your backend, the SDK seamlessly integrates them and re-optimizes your circuit to take advantage of whatever hardware feature you’ve just added. The paper also delves into the power of dynamic circuits, which gives developers the ability to add classical logic in the middle of their circuits to make them more efficient.

How to use this paper

The new paper also covers the software architecture of Qiskit — detailing how the quantum circuit model is supported by the transpiler that optimizes circuits, the quantum information module that houses key mathematical tools, the primitives that simplify the process of evaluating quantum circuits for their output, and the Qiskit visualization modules that help users generate visualizations of quantum states, circuits, backends, and other objects in Qiskit.

Beyond that, the paper delivers useful examples of what you can do with these components, including many details on how to use tools like the transpiler, the primitives, and the quantum hardware itself to get the most out of different kinds of circuits.

Citing Qiskit

APA Style (7th Edition)

Javadi-Abhari, A., Treinish, M., Krsulich, K., Wood, C. J., Lishman, J., Gacon, J., Martiel, S., Nation, P., Bishop, L. S., Cross, A. W., Johnson, B. R., & Gambetta, J. M. (2024, May 15). Quantum computing with Qiskit. arxiv.org/abs/2405.08810

MLA Style (9th Edition)

Javadi-Abhari, Ali, et al. Quantum Computing with Qiskit. arXiv:2405.08810, arXiv, 15 May 2024. arXiv.org, arxiv.org/abs/2405.08810.

Chicago Style

Javadi-Abhari, Ali, Matthew Treinish, Kevin Krsulich, Christopher J. Wood, Jake Lishman, Julien Gacon, Simon Martiel, et al. “Quantum Computing with Qiskit.” arXiv, May 15, 2024. arxiv.org/abs/2405.08810.


View documentation