Qu'est-ce que le SDK IonQ ?
qiskit-ionq est le fournisseur Qiskit officiel d'IonQ : il permet de construire des circuits avec la syntaxe Qiskit standard et de les exécuter directement sur le Quantum Cloud d'IonQ, sans compte AWS ni Azure. Le simulateur idéal (sans bruit) est gratuit. Un simulateur avec modèle de bruit reproduit le comportement du matériel réel. Les tirs sur QPU réel sont facturés au tir.
Le matériel IonQ est aussi accessible via Amazon Braket et Azure Quantum, si vous utilisez déjà l'une de ces plateformes.
Installation et configuration
pip install qiskit-ionq
# Get a free API key at cloud.ionq.com (new accounts include trial credits)
export IONQ_API_KEY=your_api_keySimulateur cloud gratuit
Le backend ionq_simulator est un simulateur de vecteur d'état sans bruit hébergé par IonQ. Il est gratuit et ne nécessite qu'une clé API — pas de compte AWS ni Azure, pas de calcul local.
from qiskit import QuantumCircuit
from qiskit_ionq import IonQProvider
provider = IonQProvider() # reads IONQ_API_KEY from the environment
# Free, noiseless (ideal) simulator
backend = provider.get_backend("ionq_simulator")
# Build a Bell state circuit
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
job = backend.run(qc, shots=1000)
print(job.get_counts()) # {'00': ~500, '11': ~500}Simulation avec modèle de bruit
Avant de dépenser des tirs sur du matériel réel, exécutez le même circuit avec un modèle de bruit qui reproduit un système IonQ spécifique. Cela reste sur le backend du simulateur gratuit, ce qui permet de valider des stratégies d'atténuation d'erreurs sans coût.
from qiskit import QuantumCircuit
from qiskit_ionq import IonQProvider
provider = IonQProvider()
backend = provider.get_backend("ionq_simulator")
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
# Model the noise profile of a real IonQ system on the free simulator
job = backend.run(qc, shots=1000, noise_model="aria-1")
print(job.get_counts())Matériel QPU réel
Les systèmes à ions piégés d'IonQ offrent une fidélité de porte élevée et une connectivité qubit tout-à-tout, donc les circuits nécessitent moins de routage SWAP que sur du matériel connecté en grille. L'accès QPU réel est facturé au tir : vérifiez votre budget de tirs et les tarifs actuels d'IonQ avant de soumettre une tâche importante.
from qiskit import QuantumCircuit
from qiskit_ionq import IonQProvider
provider = IonQProvider()
# Aria: 25 algorithmic qubits, trapped-ion, all-to-all connectivity
aria = provider.get_backend("ionq_qpu.aria-1")
# Forte: newer generation, higher fidelity
forte = provider.get_backend("ionq_qpu.forte-1")
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
# Check current queue and calibration data before submitting
print(aria.calibration())
# Submit (real QPU shots are billed per-shot — check cloud.ionq.com/pricing)
job = aria.run(qc, shots=100)
print(job.get_counts())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.
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="ionq") # explicit