Quantum Backends
QCOS provides unified access to quantum hardware from multiple cloud providers. This guide covers all available backends, their capabilities, and best practices for each.
Backend Overviewβ
| Backend | Provider | Qubits | Type | Best For |
|---|---|---|---|---|
| IBM Brisbane | IBM Quantum | 127 | Superconducting | Production workloads |
| IBM Sherbrooke | IBM Quantum | 127 | Superconducting | High-fidelity circuits |
| IBM Heron | IBM Quantum | 133 | Superconducting | Latest technology |
| IonQ Aria | AWS Braket | 25 | Trapped Ion | High connectivity |
| IonQ Forte | AWS Braket | 36 | Trapped Ion | Complex algorithms |
| Rigetti Ankaa-3 | AWS Braket | 84 | Superconducting | Fast execution |
| IQM Garnet | AWS Braket | 20 | Superconducting | European data residency |
| QuEra Aquila | AWS Braket | 256 | Neutral Atom | Analog simulation |
| Quantinuum H1 | Azure Quantum | 20 | Trapped Ion | High fidelity |
| Quantinuum H2 | Azure Quantum | 32 | Trapped Ion | Enterprise workloads |
IBM Quantum Backendsβ
IBM Brisbaneβ
job = client.run(circuit, backend="ibm_brisbane")
| Specification | Value |
|---|---|
| Processor | Eagle r3 |
| Qubits | 127 |
| Topology | Heavy-hex |
| T1 (avg) | 264 ΞΌs |
| T2 (avg) | 128 ΞΌs |
| CNOT Error | 0.8% |
| Readout Error | 1.2% |
Best for: General-purpose production workloads, VQE, QAOA.
Pricing: $115.20/minute (QCOS Standard)
IBM Sherbrookeβ
job = client.run(circuit, backend="ibm_sherbrooke")
| Specification | Value |
|---|---|
| Processor | Eagle r3 |
| Qubits | 127 |
| Topology | Heavy-hex |
| T1 (avg) | 280 ΞΌs |
| T2 (avg) | 135 ΞΌs |
| CNOT Error | 0.7% |
| Readout Error | 1.0% |
Best for: High-fidelity experiments, research validation.
Pricing: $115.20/minute (QCOS Standard)
IBM Heronβ
job = client.run(circuit, backend="ibm_heron")
| Specification | Value |
|---|---|
| Processor | Heron |
| Qubits | 133 |
| Topology | Heavy-hex |
| T1 (avg) | 300+ ΞΌs |
| T2 (avg) | 150+ ΞΌs |
| CZ Error | 0.3% |
| Readout Error | 0.8% |
Best for: Latest technology, lowest error rates.
Pricing: $115.20/minute (QCOS Standard)
Note: IBM Heron uses native CZ gates instead of CNOT. QCOS optimization automatically transpiles circuits for best performance.
AWS Braket Backendsβ
IonQ Ariaβ
job = client.run(circuit, backend="ionq_aria")
| Specification | Value |
|---|---|
| Technology | Trapped Ion |
| Qubits | 25 (algorithmic) |
| Connectivity | All-to-all |
| 1Q Gate Fidelity | 99.94% |
| 2Q Gate Fidelity | 99.4% |
| Readout Fidelity | 99.3% |
Best for: Circuits requiring high connectivity, quantum chemistry.
Pricing: $0.36/task + $0.036/shot
Example Cost: 1000 shots = $0.36 + $36.00 = $36.36
IonQ Forteβ
job = client.run(circuit, backend="ionq_forte")
| Specification | Value |
|---|---|
| Technology | Trapped Ion |
| Qubits | 36 (algorithmic) |
| Connectivity | All-to-all |
| 1Q Gate Fidelity | 99.97% |
| 2Q Gate Fidelity | 99.5% |
Best for: Complex algorithms, highest gate fidelity.
Pricing: $0.36/task + $0.096/shot
Rigetti Ankaa-3β
job = client.run(circuit, backend="rigetti_ankaa")
| Specification | Value |
|---|---|
| Technology | Superconducting |
| Qubits | 84 |
| Connectivity | Square lattice |
| Median 1Q Fidelity | 99.5% |
| Median 2Q Fidelity | 95% |
Best for: Fast turnaround, large-scale experiments.
Pricing: $0.36/task + $0.00108/shot
Example Cost: 10,000 shots = $0.36 + $10.80 = $11.16
IQM Garnetβ
job = client.run(circuit, backend="iqm_garnet")
| Specification | Value |
|---|---|
| Technology | Superconducting |
| Qubits | 20 |
| Location | Europe (Finland) |
| Connectivity | Square lattice |
Best for: European data residency requirements, GDPR compliance.
Pricing: $0.36/task + $0.00174/shot
QuEra Aquilaβ
job = client.run(circuit, backend="quera_aquila")
| Specification | Value |
|---|---|
| Technology | Neutral Atom |
| Atoms | Up to 256 |
| Type | Analog quantum simulation |
Best for: Optimization problems, quantum simulation, Ising models.
Pricing: $0.36/task + $0.012/shot
Note: QuEra Aquila operates in analog mode. QCOS provides a translation layer for digital circuits where applicable.
Azure Quantum Backendsβ
Quantinuum H1β
job = client.run(circuit, backend="quantinuum_h1")
| Specification | Value |
|---|---|
| Technology | Trapped Ion |
| Qubits | 20 |
| 2Q Gate Fidelity | 99.8% |
| Connectivity | All-to-all |
Best for: Enterprise workloads, highest reliability.
Pricing: Azure credits + 20% QCOS fee
Quantinuum H2β
job = client.run(circuit, backend="quantinuum_h2")
| Specification | Value |
|---|---|
| Technology | Trapped Ion |
| Qubits | 32 |
| 2Q Gate Fidelity | 99.8% |
| Features | Error correction ready |
Best for: Enterprise production, error-corrected circuits.
Pricing: Azure credits + 20% QCOS fee
HPC Simulatorsβ
LUMI Simulatorβ
result = client.simulate(
circuit,
method="statevector",
noise_model="ibm_brisbane"
)
| Specification | Value |
|---|---|
| Max Qubits (statevector) | 40 |
| Max Qubits (MPS) | 100+ |
| GPU Acceleration | Yes (AMD MI250X) |
| Location | Finland (CSC) |
Methods:
statevector- Exact simulation up to 40 qubitsdensity_matrix- Up to 25 qubits with noisemps- Tensor network up to 100+ qubits (low entanglement)
Pricing: See Pricing
Choosing the Right Backendβ
Decision Matrixβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Which Backend Should I Use? β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β High connectivity needed? β
β YES β IonQ Aria/Forte or Quantinuum β
β NO β β
β β
β Need many qubits (>50)? β
β YES β IBM Brisbane/Sherbrooke or Rigetti Ankaa β
β NO β β
β β
β Lowest error rates critical? β
β YES β IBM Heron or Quantinuum H2 β
β NO β β
β β
β Fast turnaround needed? β
β YES β Rigetti Ankaa (short queue) β
β NO β β
β β
β Cost-sensitive? β
β YES β Rigetti ($0.00108/shot) β
β NO β IBM Brisbane (best overall) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Cost Comparison (1000 shots)β
| Backend | Cost |
|---|---|
| Rigetti Ankaa | $1.44 |
| IQM Garnet | $2.10 |
| QuEra Aquila | $12.36 |
| IonQ Aria | $36.36 |
| IonQ Forte | $96.36 |
Backend Statusβ
Check backend availability:
# All backends
backends = client.backends()
for b in backends:
print(f"{b.id}: {b.status} (queue: {b.queue_length})")
# Specific backend
backend = client.backend("ibm_brisbane")
print(f"Status: {backend.status}")
print(f"Next maintenance: {backend.maintenance.next_scheduled}")
Status Values:
| Status | Description |
|---|---|
online | Available for jobs |
busy | Online but high queue |
maintenance | Scheduled maintenance |
offline | Temporarily unavailable |
retired | Permanently unavailable |
Backend-Specific Optimizationβ
QCOS automatically optimizes circuits for each backend:
# QCOS detects backend and applies appropriate optimization
job = client.run(circuit, backend="ibm_heron")
# Check what optimization was applied
print(f"Original depth: {job.metrics.original_depth}")
print(f"Optimized depth: {job.metrics.optimized_depth}")
print(f"Native gates: {job.metrics.native_gates}")
Backend Optimizationsβ
| Backend | Native Gates | Optimizations |
|---|---|---|
| IBM | CX, RZ, SX, X | Heavy-hex mapping, dynamic decoupling |
| IBM Heron | CZ, RZ, SX | CZ-optimized transpilation |
| IonQ | All-to-all | Gate fusion, native gate set |
| Rigetti | CZ, XY | Parametric compilation |
| Quantinuum | ZZ | ZZ-based decomposition |
Multi-Backend Workflowsβ
Execute the same circuit across multiple backends:
backends = ["ibm_brisbane", "ionq_aria", "rigetti_ankaa"]
jobs = []
for backend in backends:
job = client.run(circuit, backend=backend, shots=1000)
jobs.append(job)
# Collect results
for job in jobs:
result = job.result()
print(f"{job.backend}: {result.counts}")
Next Stepsβ
- π Circuit Optimization - Maximize backend performance
- π° Pricing - Detailed cost breakdown
- π§ API Reference - Backend API endpoints