Qiskit — IBM's Quantum SDK
Definition
Qiskit (Quantum Information Science Kit) is IBM's open-source SDK for working with quantum computers at the level of circuits, pulses, and algorithms. Released in 2017, it is the most widely adopted quantum programming framework, with over 500,000 users and a vibrant open-source community. Qiskit is Python-native and organised into modular components (Terra, Aer, Ignis, Aqua) that handle circuit construction, simulation, error mitigation, and application algorithms.
Usage and Benefits
Usage
Qiskit programs follow a four-step workflow:
- Build — Construct quantum circuits using the
QuantumCircuitclass. - Compile — Transpile circuits to a target backend's gate set and topology.
- Run — Execute on a simulator (
Aer) or real IBM hardware via IBM Quantum Platform. - Analyse — Post-process measurement results with classical Python libraries.
Basic example — Bell state preparation:
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
sim = AerSimulator()
result = sim.run(qc).result()
counts = result.get_counts()
print(counts) # {'00': 500, '11': 500}
Benefits
- Largest hardware fleet — Access to 20+ IBM quantum backends, including the 1,121-qubit Condor processor.
- Rich ecosystem — Qiskit Nature (chemistry), Qiskit Finance, Qiskit Optimization, Qiskit Machine Learning.
- Extensive learning resources — IBM Quantum Learning, Qiskit textbook, YouTube tutorials, and a global community.
- Pulse-level control —
Qiskit Pulselets advanced users design hardware-level pulse schedules. - Error mitigation — Built-in tools for measurement error mitigation, zero-noise extrapolation, and Pauli twirling.
Use Cases
| Domain | Application | Why Qiskit |
|---|---|---|
| Chemistry | Ground-state energy estimation (VQE) | Qiskit Nature + Aer simulator |
| Optimisation | Portfolio optimisation, supply chain | Qiskit Optimization (QAOA) |
| Machine Learning | Quantum kernel estimation, QGANs | Qiskit Machine Learning |
| Cryptography | Shor's algorithm, QKD simulation | Textbook implementations |
| Finance | Monte Carlo risk analysis | Qiskit Finance circuit library |
How to Use Qiskit
Installation
pip install qiskit qiskit-aer qiskit-ibm-runtime
Connecting to IBM Hardware
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(channel="ibm_quantum", token="YOUR_IBMQ_TOKEN")
backend = service.backend("ibm_brisbane")
Transpiling for a Real Backend
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
pm = generate_preset_pass_manager(optimization_level=3, backend=backend)
transpiled_qc = pm.run(qc)
Running with Error Mitigation
from qiskit_ibm_runtime import Estimator, EstimatorOptions
options = EstimatorOptions()
options.resilience_level = 1 # Twirled readout error mitigation
estimator = Estimator(backend=backend, options=options)
Resources and References
- Official site: qiskit.org
- Documentation: docs.quantum.ibm.com
- Qiskit Textbook: learning.quantum.ibm.com
- GitHub: github.com/Qiskit
- IBM Quantum Platform: quantum.ibm.com
- Key paper: Javadi-Abhari et al., "Quantum computing with Qiskit" (2024), arXiv:2405.08810