IonQ SDK とは?
qiskit-ionq は IonQ の公式 Qiskit プロバイダーです。標準の Qiskit 構文で回路を構築し、AWS や Azure のアカウントなしで IonQ の Quantum Cloud に直接実行できます。理想(ノイズなし)シミュレーターは無料です。ノイズモデル化シミュレーターは実機の挙動を再現します。実機 QPU のショットはショットごとに課金されます。
すでに Amazon Braket や Azure Quantum を使っている場合、それらのプラットフォーム経由でも IonQ ハードウェアにアクセスできます。
インストールとセットアップ
pip install qiskit-ionq
# Get a free API key at cloud.ionq.com (new accounts include trial credits)
export IONQ_API_KEY=your_api_key無料クラウドシミュレーター
バックエンド ionq_simulator は IonQ がホストするノイズなしの状態ベクトルシミュレーターです。無料で利用でき、API キーだけで動作します — AWS や Azure のアカウントもローカルの計算資源も不要です。
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}ノイズモデル化シミュレーション
実機でショットを消費する前に、特定の IonQ システムを再現するノイズモデルで同じ回路を実行してみましょう。無料のシミュレーターバックエンド上で完結するため、エラー緩和戦略を無料で検証できます。
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())実機 QPU ハードウェア
IonQ のトラップイオン方式は高い フィデリティ のゲートと全対全の量子ビット接続性を提供するため、格子接続のハードウェアに比べて SWAP を多用するルーティングが少なく済みます。実機 QPU アクセスはショットごとに課金されます — 大きなジョブを送信する前に、 ショット予算 と IonQ の現在の料金を確認してください。
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