Skip to content
Home
Qiskit Beginner's Guide

Qiskit Beginner's Guide

Quantum Computing Quantum Computing 8 min read 1503 words Beginner ExcellentWiki Editorial Team

What Is Qiskit?

Qiskit is IBM’s open-source quantum computing SDK. It provides tools for building, simulating, and executing quantum circuits on IBM’s cloud-accessible quantum processors. Qiskit supports Python and has evolved through multiple versions — the current release is Qiskit 1.x with a streamlined interface.

Installation

pip install qiskit qiskit-aer qiskit-ibm-runtime

Qiskit 1.x separates transpilation, simulation, and hardware access into distinct packages.

Building Your First Circuit

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])

simulator = AerSimulator()
result = simulator.run(qc, shots=1024).result()
counts = result.get_counts()
print(counts)

This creates a Bell state (|00⟩ + |11⟩)/√2. Measuring both qubits yields 00 or 11 with roughly equal probability.

Circuit Visualization

qc.draw('mpl')

Qiskit supports Matplotlib, ASCII, and LaTeX circuit drawing.

Qiskit Transpiler

The transpiler converts an abstract circuit to a hardware-compatible circuit respecting the target device’s topology and native gate set.

from qiskit.providers.fake_provider import FakeManila
from qiskit import transpile

backend = FakeManila()
transpiled = transpile(qc, backend, optimization_level=3)

Optimization levels range from 0 (no optimization) to 3 (heavy optimization).

Running on Real Quantum Hardware

After testing on simulators, running on actual quantum hardware reveals the challenges of NISQ devices. IBM Quantum provides free access to several processors with up to 127 qubits. Execute circuits by selecting a backend with IBMQ.get_provider().get_backend('ibmq_manila'). Real hardware runs are submitted as jobs with queue times ranging from minutes to hours. Results include error mitigation metadata that helps interpret the noisy output. Start with a simple Bell state circuit to calibrate expectations — even this basic circuit shows the effects of gate errors and measurement noise.

from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(channel="ibm_quantum")
backend = service.backend("ibm_brisbane")

from qiskit_ibm_runtime import Sampler
sampler = Sampler(backend=backend)
job = sampler.run([transpiled])
result = job.result()

Error Mitigation Techniques

Qiskit provides several error mitigation strategies. Measurement error mitigation builds a calibration matrix from special calibration circuits. Readout error mitigation adjusts the measured probabilities based on this matrix. Zero-noise extrapolation runs the same circuit at different noise levels and extrapolates to the zero-noise limit. These techniques can reduce effective error rates by 10-100x for shallow circuits.

Quantum Primitives

Qiskit 1.x introduced Sampler (measurement samples) and Estimator (expectation values) primitives. These abstract away circuit execution details, enabling higher-level algorithms like VQE and QAOA.

Error Mitigation

Noise on real quantum devices corrupts results. Qiskit provides several error mitigation techniques: measurement error mitigation (ReadoutMitigator) corrects measurement bit flips; gate error mitigation (Zero Noise Extrapolation) runs circuits at different noise levels and extrapolates to zero noise; and Probabilistic Error Cancellation (PEC) samples from distributions that invert the noise channel.

Grover’s Algorithm in Qiskit

from qiskit.algorithms import Grover, AmplificationProblem
oracle = QuantumCircuit(3)
oracle.cz(0, 2)
oracle.cz(1, 2)
problem = AmplificationProblem(oracle, is_good_state=["111"])
grover = Grover()
result = grover.amplify(problem)
print(result.measurement_counts_most_frequent)

Mathematical Foundations

Quantum computing relies heavily on linear algebra: vectors (state vectors in Hilbert space), matrices (quantum gates as unitary operators), tensor products (combining qubit spaces), eigenvalues and eigenvectors (measurement outcomes and stabilizer states), and inner products (probability amplitudes and fidelity). Understanding complex numbers, matrix multiplication, and diagonalization is essential. The Pauli matrices (σx, σy, σz) form a basis for single-qubit operations and appear throughout quantum information theory.

Numerical Simulation

For small systems (up to 30-40 qubits), classical simulation using state vector or tensor network methods is feasible. Qiskit Aer and Cirq simulators use optimized C++ backends with GPU acceleration. Matrix product state (MPS) simulators handle higher qubit counts for shallow circuits. These simulators are essential for algorithm development, debugging, and verification before running on real hardware.

Current Research Frontiers

Active research areas: quantum error correction (improving thresholds, reducing overhead), quantum algorithms for optimization and machine learning, quantum advantage demonstrations on real hardware, fault-tolerant quantum computing architectures, quantum networking and repeaters, quantum sensing and metrology, and hybrid quantum-classical algorithms for near-term devices. The field is advancing rapidly with new results appearing weekly on arXiv.

Quantum Computing Applications by Industry

Quantum computing promises transformative applications across multiple industries. In pharmaceuticals and healthcare, quantum simulations could model molecular interactions for drug discovery, reducing the decade-long timeline for new drug development to months. Researchers at IBM and pharmaceutical companies are already exploring quantum chemistry simulations for protein folding and drug-target interactions. In finance, quantum algorithms could optimize portfolio allocation, risk assessment, and fraud detection. JPMorgan Chase and Goldman Sachs have active quantum computing research groups exploring Monte Carlo simulation speedups and portfolio optimization. In logistics, quantum optimization could solve vehicle routing problems with thousands of constraints, potentially saving millions in fuel and delivery costs. Daimler and Volkswagen have experimented with quantum computing for optimizing battery production and traffic flow. In materials science, quantum simulations could discover new battery electrolytes, solar cell materials, and catalysts. The timeline for these applications varies: near-term (3-5 years) applications include quantum-inspired algorithms running on classical hardware, while fault-tolerant quantum advantage for complex simulations is likely 10+ years away. Organizations should begin building quantum literacy now through experimentation with cloud-accessible quantum processors and simulators.

Getting Hands-On with Quantum Computing

Practical experience is essential for understanding quantum computing. Start with IBM Quantum Experience — create a free account and access real quantum processors and simulators through the IBM Cloud. Complete the Qiskit textbook tutorials which walk through building quantum circuits, implementing algorithms, and running on real hardware. Explore Amazon Braket for access to multiple hardware providers (IonQ, Rigetti, D-Wave) through a single interface. Use quantum simulators on your local machine for rapid prototyping — Qiskit Aer provides high-performance simulation with noise models that mimic real hardware behavior. Join quantum computing communities: the Qiskit Slack, Unitary Fund Discord, and PennyLane discussion forums provide support from practitioners at all levels.

The Quantum Computing Community

The quantum computing community is welcoming and active. Join the Qiskit Slack (50,000+ members), attend IBM Quantum Summit, participate in IEEE Quantum Week, and follow researchers on Twitter/X and LinkedIn. The Quantum Open Source Foundation (QOSF) runs mentorship programs. Discord servers (Quantum Computing Stack Exchange, Qiskit Community) provide real-time help. Conferences like Q2B, QCrypt, and TQC showcase the latest research.

Related: Quantum Gates Explained | Quantum Cloud Services

Building Custom Quantum Circuits

Beyond predefined gates, Qiskit lets you build custom gates and subroutines. Use QuantumCircuit.to_gate() to package a circuit as a reusable gate. Define composite gates with Gate and Instruction classes. The QuantumCircuit.append() method adds custom instructions to any circuit. For parameterized circuits (useful in variational algorithms), use Parameter objects: theta = Parameter('θ'); qc.rz(theta, 0). Bind values with qc.bind_parameters({theta: 0.5}). Parameterized circuits enable efficient quantum machine learning and optimization algorithms where circuit structure is fixed but parameters vary.

Common Qiskit Workflow

A typical Qiskit workflow: define a circuit with gates and measurements, transpile it for a specific backend, execute on a simulator or real device, and post-process results. Use transpile(circuit, backend, optimization_level=3) to optimize for hardware. Use backend.run(circuit) for execution. Retrieve results with job.result(). For batched experiments, use execute() with multiple circuits. This workflow is the foundation for all Qiskit-based quantum computing experiments from simple Bell state preparation to complex variational algorithms.

Visualizing Circuit Execution

Qiskit provides QuantumCircuit.draw() for ASCII art or Matplotlib visualizations of your circuit. Use plot_histogram() to display measurement outcomes from simulation runs. For statevector simulation, plot_state_city() and plot_state_qsphere() visualize the quantum state in different representations. The plot_bloch_multivector() function shows each qubit’s state on the Bloch sphere. These visualizations are essential for debugging circuit logic before running on real hardware.

FAQ

Do I need a quantum computer to learn Qiskit?

No — Qiskit Aer provides high-performance simulators that run on your local machine. For circuits up to 30+ qubits, classical simulation is sufficient for learning and algorithm development. IBM Quantum also provides free cloud access to real quantum hardware for testing small circuits.

What is the difference between Sampler and Estimator primitives?

Sampler returns measurement outcome counts (frequencies of bitstrings) from running circuits. Estimator computes expectation values of observables — useful for variational algorithms like VQE. Sampler replaces the older execute() function, while Estimator is new in Qiskit 1.x.

How do I choose optimization level in the transpiler?

Level 0: no optimization (fastest, good for debugging). Level 1: light optimization (gate cancellation). Level 2: medium optimization (commutation + cancellation). Level 3: heavy optimization (resynthesis, routing optimization). Use level 3 for production, level 0-1 during development.

Running on Real Quantum Hardware

To run circuits on real IBM quantum devices, save your IBM Quantum API token and load it with IBMQ.save_account(token). Use the ibmq_least_busy backend filter to find available devices. Real hardware has limited qubit counts, gate fidelities, and connectivity constraints — the transpiler automatically maps your circuit to the device topology. Each job submission typically places your circuit in a queue that can range from seconds to hours depending on device demand and priority tier. Use the Runtime service for session-based execution with batching to reduce overhead.

What are the main changes in Qiskit 1.x?

Qiskit 1.x splits the monolith into modular packages (qiskit, qiskit-aer, qiskit-ibm-runtime). It introduces Sampler and Estimator primitives, removes deprecated APIs, and improves transpiler performance. The qiskit-terra package is now simply qiskit. Code written for Qiskit 0.x needs updates for 1.x compatibility.

Section: Quantum Computing 1503 words 8 min read Beginner 756 articles in section Report inaccuracy Back to top