🎉 Qiskit is getting a new documentation and learning experience on IBM Quantum!Learn more

[kiss-kit] noun, software


  1. open-source toolkit for useful quantum computing.
  2. production-ready circuit compiler.
Get started
A visual composition of a sketched a quantum computer
A laptop with the following code sample: # Build a circuit
from qiskit import QuantumCircuit
circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0,1)
circuit.measure([0,1], [0,1])
 
# Connect to your quantum provider
from <quantum provider> import Sampler
sampler = Sampler()
 
# Run the circuit and get the result
job = sampler.run(circuit)
quasi_dist = job.result().quasi_dists[0]
print(quasi_dist)
# Build a circuit
from qiskit import QuantumCircuit
circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0,1)
circuit.measure([0,1], [0,1])
 
# Connect to your quantum provider
from <quantum provider> import Sampler
sampler = Sampler()
 
# Run the circuit and get the result
job = sampler.run(circuit)
quasi_dist = job.result().quasi_dists[0]
print(quasi_dist)

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.

View the circuit library

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.

Read about transpilation

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.

See all providers

Try it yourself

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

Get started here

Qiskit is getting a new documentation
and learning experience!

Documentation

We are reorganizing Qiskit documentation on IBM Quantum to better support your research and development workflows.

Learning

We are building a new learning application with courses and tutorials to help you learn the basics and start experimenting with Qiskit.

Screenshot of the new Qiskit documentation

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

# Specify problem hamiltonian
from qiskit.quantum_info import SparsePauliOp

hamiltonian = SparsePauliOp.from_list([
   ("II", -1.052373245772859),
   ("IZ", 0.39793742484318045),
   ("ZI", -0.39793742484318045),
   ("ZZ", -0.01128010425623538),
   ("XX", 0.18093119978423156)
])

# Define VQE ansatz, initial point and cost function
from qiskit.circuit.library import TwoLocal
ansatz = TwoLocal(num_qubits=2, rotation_blocks="ry", entanglement_blocks="cz")
initial_point = initial_point = [0] * 8

def cost_function(params, ansatz, hamiltonian, estimator):
    energy = estimator.run(ansatz, hamiltonian, parameter_values=params).result().values[0]
    return energy

# Run VQE using SciPy minimizer routine
from scipy.optimize import minimize
result = minimize(cost_function, initial_point, args=(ansatz, hamiltonian, estimator), method="cobyla")

# Print minimum eigenvalue
print(result.fun)
Copy
Feedback