Devices on qBraid

IQM’s superconducting QPUs are on qBraid through two submission paths. Each path has its own device IDs and billing.

Device IDDevicePath
aws:iqm:qpu:garnetGarnet, 20 qubitsAmazon Braket
aws:iqm:qpu:emeraldEmerald, 54 qubitsAmazon Braket
openquantum:iqm:qpu:garnetGarnet, 20 qubitsOpen Quantum
openquantum:iqm:qpu:emeraldEmerald, 54 qubitsOpen Quantum

Check each device’s status and price in the device catalog before you submit.

Quick start

from qbraid.runtime import QbraidProvider

provider = QbraidProvider()
device = provider.get_device("aws:iqm:qpu:garnet")

bell = """
OPENQASM 3.0;
include "stdgates.inc";
qubit[2] q;
bit[2] c;
h q[0];
cx q[0], q[1];
c = measure q;
"""

job = device.run(bell, shots=100)
print(job.result().data.get_counts())

Through Amazon Braket

aws:iqm: devices go through Amazon Braket, billed in qBraid credits. Write standard gates on qubits 0..n-1. Braket compiles them to IQM’s two native gates, prx and cz, and chooses the physical qubits. Amazon Braket explains the compilation, how your counts are ordered, and how to retrieve the compiled program to see which physical qubits your job ran on.

Garnet and Emerald report live calibration data through qBraid. Calibrations shows how to fetch it, plot the connectivity graph, and pick the best qubits for your circuit.

aws:iqm: devices take Braket runtime options. For example, IQM’s dynamic circuits, with mid-circuit measurement, are a Braket experimental capability:

job = device.run(
    program,
    shots=100,
    runtime_options={"experimental_capabilities": "ALL"},
)

Through Open Quantum

openquantum:iqm: devices go through Open Quantum and spend credits from an Open Quantum account linked to qBraid, not qBraid credits. Link the account first, then submit as usual:

device = provider.get_device("openquantum:iqm:qpu:garnet")
job = device.run(bell, shots=100)

See Open Quantum for linking an account and what these devices accept.