What Can Qiskit Do

Circuit Library

Qiskit includes a comprehensive set of quantum gates and a variety of pre-built circuits so users at all levels can use Qiskit for research and application development.

Learn more

Transpiler

The transpiler translates Qiskit code into an optimized circuit using a backend’s native gate set, allowing users to program for any quantum processor. Users can transpile with Qiskit's default optimization, use a custom configuration or develop their own plugin.

Learn more

Run on any hardware

Qiskit helps users schedule and run quantum programs on a variety of local simulators and cloud-based quantum processors. It supports several quantum hardware designs, such as superconducting qubits and trapped ions.

Learn more

Try it yourself

Ready to explore Qiskit’s capabilities for yourself? Learn how to run Qiskit in the cloud or your local Python environment.

Learn more

Backend compatibility

You can use Qiskit to construct quantum programs and run them on simulators or real quantum computers. With our extensive network of providers you can compile your Qiskit code for a huge range of different backends, more than any other quantum framework!

Select a provider below and explore code examples of how to use it with Qiskit:

See all providers

Install

pip install qiskit
Copy

Build and run

TranspileSample a Bell StateRun VQE
# Build circuit
from qiskit.circuit.library import QuantumVolume
circuit = QuantumVolume(5)
# Transpile circuit
from qiskit import transpile
transpiled_circuit = transpile(circuit, basis_gates=['sx', 'rz', 'cx'])
transpiled_circuit.draw()
Copy
from qiskit.primitives import Sampler
sampler = Sampler()
# Build circuit
from qiskit import QuantumCircuit
circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0,1)
circuit.measure([0,1], [0,1])
# Run the circuit and get result distribution
job = sampler.run(circuit)
quasi_dist = job.result().quasi_dists[0]
print(quasi_dist)
Copy
from qiskit.primitives import Estimator
estimator = Estimator()
# Express hydrogen molecule Hamiltonian as an operator
from qiskit.quantum_info import SparsePauliOp
H2_operator = SparsePauliOp.from_list([
    ("II", -1.052373245772859),
    ("IZ", 0.39793742484318045),
    ("ZI", -0.39793742484318045),
    ("ZZ", -0.01128010425623538),
    ("XX", 0.18093119978423156)
])
# Calculate ground state energy using VQE
from qiskit.circuit.library import TwoLocal
from qiskit.algorithms.optimizers import SLSQP
from qiskit.algorithms.minimum_eigensolvers import VQE
ansatz = TwoLocal(num_qubits=2, rotation_blocks="ry", entanglement_blocks="cz")
optimizer = SLSQP(maxiter=100)
vqe = VQE(estimator, ansatz, optimizer)
result = vqe.compute_minimum_eigenvalue(operator=H2_operator)
print(result.eigenvalue)
Copy

Learn with Qiskit

Gain access to a free, digital textbook to study the concepts of quantum computing using Qiskit.

Get learning
Group of students looking into a laptop