Skip to content
Accueil/SDK/IBM Qiskit

IBM Qiskit

Le SDK quantique le plus populaire au monde. Accès complet aux simulateurs IBM et au vrai matériel quantique — entièrement gratuit.

Open sourceSimulateurQPU réelPython

Qu'est-ce que Qiskit ?

Qiskit est le SDK d'informatique quantique open source d'IBM. Il fournit des outils pour composer, visualiser, optimiser et exécuter des circuits quantiques sur les simulateurs IBM Quantum et le vrai matériel quantique. L'offre gratuite inclut l'accès à plusieurs QPU sans coût au-delà du temps d'attente.

📦
v1.x
Version actuelle
🖥️
30+ qubits
Simulateur Aer
⚛️
127 qubits
QPU réel gratuit
🆓
Gratuit
Compte ouvert

Installation

terminal
pip install qiskit                # Core
pip install qiskit-aer            # Local simulator
pip install qiskit-ibm-runtime    # IBM Quantum cloud access
pip install qiskit[visualization] # Optional: circuit diagrams

Configurer l'accès gratuit à IBM Quantum

  1. 1Rendez-vous sur quantum.ibm.com et cliquez sur « Sign in » → « Create an IBMid » (gratuit).
  2. 2Après la connexion, allez dans votre profil (en haut à droite) → « Manage account » → « API token ».
  3. 3Copiez le jeton d'API et collez-le dans l'appel save_account() ci-dessous.
  4. 4Exécutez le script de configuration une fois. Les identifiants sont enregistrés dans ~/.qiskit/qiskit-ibm.json.
setup_credentials.py
from qiskit_ibm_runtime import QiskitRuntimeService

# Save your IBM Quantum token (only needed once)
QiskitRuntimeService.save_account(
    channel="ibm_quantum",
    token="YOUR_IBM_QUANTUM_TOKEN_HERE",
    overwrite=True
)

# Verify the connection
service = QiskitRuntimeService(channel="ibm_quantum")
backends = service.backends()
print(f"Available backends: {[b.name for b in backends]}")

Exécution sur le simulateur local gratuit

Qiskit Aer fournit un simulateur local haute performance. Aucun compte requis — exécutez un nombre illimité de circuits sur votre machine.

local_sim.py
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
from qiskit.visualization import plot_histogram

# Build a Bell state circuit
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])

# Run on local Aer simulator (free, unlimited)
sim = AerSimulator()
job = sim.run(qc, shots=4096)
result = job.result()
counts = result.get_counts()
print(counts)  # {'00': ~2048, '11': ~2048}

# Statevector simulation (no measurement noise)
from qiskit.quantum_info import Statevector
sv = Statevector.from_instruction(qc.remove_final_measurements(inplace=False))
print(sv)  # [0.707+0j, 0, 0, 0.707+0j]

Exécution sur du vrai matériel QPU gratuit

See which QPUs you can use for free, and read how transpilation rewrites your circuit for a specific backend.

real_hardware.py
from qiskit import QuantumCircuit, transpile
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler

service = QiskitRuntimeService(channel="ibm_quantum")

# Find the least-busy free QPU
backend = service.least_busy(
    operational=True,
    simulator=False,
    min_num_qubits=2
)
print(f"Running on: {backend.name} ({backend.num_qubits} qubits)")

# Build circuit
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

# Transpile for the specific backend
qc_t = transpile(qc, backend, optimization_level=3)

# Submit job using SamplerV2 (modern Qiskit Runtime API)
with Sampler(mode=backend) as sampler:
    job = sampler.run([qc_t], shots=1024)
    result = job.result()
    print(result[0].data.meas.get_counts())

Solveur propre quantique variationnel (VQE)

vqe_example.py
from qiskit.circuit.library import TwoLocal
from qiskit.quantum_info import SparsePauliOp
from qiskit_ibm_runtime import QiskitRuntimeService, Session
from qiskit_ibm_runtime import EstimatorV2 as Estimator
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
import numpy as np

# Define a simple Hamiltonian (H2 molecule)
hamiltonian = SparsePauliOp.from_list([
    ("ZZ", -1.0523732),
    ("IZ",  0.3979374),
    ("ZI", -0.3979374),
    ("XX",  0.1809312),
    ("YY",  0.1809312),
])

# Ansatz circuit
ansatz = TwoLocal(2, ['ry', 'rz'], 'cx', reps=2)
init_params = np.zeros(ansatz.num_parameters)

service = QiskitRuntimeService(channel="ibm_quantum")
backend = service.least_busy(operational=True, simulator=False)

pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
ansatz_isa = pm.run(ansatz)
hamiltonian_isa = hamiltonian.apply_layout(ansatz_isa.layout)

with Session(backend=backend) as session:
    estimator = Estimator(mode=session)
    job = estimator.run([(ansatz_isa, hamiltonian_isa, init_params)])
    print(f"Energy estimate: {job.result()[0].data.evs}")

Keep exploring

💡

Also available via HLQuantum

Want to run the same circuit on multiple backends without rewriting your code? HLQuantum abstracts this SDK (and 5 others) behind a single unified API.

python
import hlquantum as hlq

qc = hlq.Circuit(2)
qc.h(0).cx(0, 1).measure_all()

# One line to switch between any backend
result = hlq.run(qc, shots=1024)              # auto-detect
result = hlq.run(qc, shots=1024, backend="qiskit")  # explicit