Introduction to Qiskit
The name "Qiskit" is a general term referring to a collection of software for executing programs on quantum computers. Most notably among these software tools is the open-source Qiskit SDK, and the runtime environment (accessed using Qiskit Runtime) through which you can execute workloads on IBM® quantum processing units (QPUs). As quantum technology evolves, so does Qiskit, with new capabilities released every year that expand this core collection of quantum software.
In addition, many open-source projects are part of the broader Qiskit ecosystem. These software tools are not part of Qiskit itself, but rather interface with Qiskit and can provide valuable additional functionality.
IBM is committed to the responsible development of quantum computing. Learn more and review our responsible quantum principles in the Responsible quantum computing topic.
The Qiskit SDK
The Qiskit SDK (package name qiskit) is an open-source SDK for working with quantum computers at the level of extended (static, dynamic, and scheduled) quantum circuits, operators, and primitives. This library is the core component of Qiskit; it is the largest package under the Qiskit name with the broadest suite of tools for quantum computation, and many other components interface with it.
Some of the most useful features of the Qiskit SDK include:
-
Circuit-building tools (
qiskit.circuit) - For initializing and manipulating registers, circuits, instructions, gates, parameters, and control flow objects. -
Circuit library (
qiskit.circuit.library) - A vast range of circuits, instructions, and gates - key building blocks for circuit-based quantum computations. -
Quantum info library (
qiskit.quantum_info) - A toolkit for working with quantum states, operators and channels, using exact calculations (no sampling noise). Use this module to specify input observables and analyze fidelity of outputs from primitives queries. -
Transpiler (
qiskit.transpiler) - For transforming and adapting quantum circuits to suit specific device topology, and optimizing for execution on real quantum processing units (QPUs). -
Primitives (
qiskit.primitives) - The module that contains the base definitions and reference implementations of the Sampler and Estimator primitives, from which different quantum hardware providers can derive their own implementations. See more information about the Qiskit Runtime primitives in the documentation.
Installation
For a more detailed introduction to installing the Qiskit SDK, check out the installation page. If you're ready to install it now, simply run:
pip install qiskitBenchmarking and the Benchpress package
Benchmarking is important for comparing the relative performance of quantum software across different stages of a development workflow. Benchmarking tests for quantum software might, for example, look at the speed and quality of building, manipulating, and transpiling circuits. IBM Quantum is committed to delivering the most performant SDK possible, and to that end, the Qiskit SDK is benchmarked using over 1,000 tests developed by leading universities, national labs, and researchers at IBM. The benchmarking suite used for these tests, named Benchpress, is now available as an open-source package. You can now use the Benchpress package to perform your own analysis of quantum SDK performance.
Qiskit addons
Qiskit addons are a collection of research capabilities for utility-scale algorithm discovery. These capabilities build upon Qiskit’s performant foundation of tools for creating and running quantum algorithms. Addons are modular software components that plug into a workflow to scale or design new quantum algorithms. To learn more about the set of available Qiskit addons and how to get started using them, visit the documentation.
The Qiskit ecosystem
Beyond Qiskit there are many open-source projects that use the "Qiskit" name but are not part of Qiskit itself; rather, they interface with Qiskit and can provide valuable additional functionality to supplement the core Qiskit workflow. Some of these projects are maintained by IBM Quantum teams, whereas others are supported by the broader open-source community. The Qiskit SDK is designed in a modular, extensible way to make it easy for developers to create projects like these that extend its capabilities.
Some popular projects in the Qiskit ecosystem include:
- Qiskit Aer (
qiskit-aer) - a package for quantum computing simulators with realistic noise models. It provides interfaces to run quantum circuits with or without noise using multiple different simulation methods. Maintained by IBM Quantum. - qBraid SDK (
qbraid) - a platform-agnostic quantum runtime framework for both quantum software and hardware providers, designed to streamline the full lifecycle management of quantum jobs—from defining program specifications to job submission and through to the post-processing and visualization of results. Maintained by qBraid. - mthree
mthree- a package for implementing M3 (Matrix-free Measurement Mitigation), a measurement mitigation technique that solves for corrected measurement probabilities using a dimensionality reduction step followed by either direct LU factorization or a preconditioned iterative method that nominally converges in O(1) steps, and can be computed in parallel. Maintained by IBM Quantum.
You can find a catalog of projects in the Qiskit ecosystem page, as well as information about how to nominate your own project.
Next steps
- Learn about the library of circuits and instructions available in the Qiskit circuit library.
- Read about the Qiskit transpiler and the many options for transpilation in the Transpiler section.
- Find out how to use Qiskit primitives to streamline quantum programming.