Routing
Real chips connect only some qubit pairs. When two qubits that must interact are not neighbors, the compiler inserts SWAPs to bring them together, and each SWAP costs three two-qubit gates. That overhead can erase what an optimizer saved.
Landfall
One circuit, four optimization strategies, five real devices. Every optimized circuit is verified equivalent to the original, then compiled with routing and native gates, so you can see which strategy actually wins where, and why.
Presets load their code here; edit it freely. OpenQASM 2 or 3, up to 12 qubits. Drop a .qasm file here, or
.
Presets load their Qiskit code here too. The code is read, never run: one QuantumCircuit(n), standard gate
calls, for i in range(...) loops and arithmetic with pi.
from qiskit import QuantumCircuit, from qiskit.circuit.library import QFTGate,
pi from math or numpy (import math and import numpy as np work too).qc = QuantumCircuit(n) or QuantumCircuit(n, m), any variable name, up to 12 qubits.h x y z s sdg t tdg sx rx ry rz p u cx cy cz ch cp crx cry crz swap ccx cswap rxx ryy rzz,
with a qubit, a list or a range(...); and qc.append(QFTGate(k), range(k)).for loops over range(...) (nested is fine), numeric variables, and + - * / // % ** with pi.measure, measure_all, barrier, draw() and print(qc) are accepted and ignored.while, if) is rejected with the line number.
For those, paste qasm2.dumps(qc) into the QASM tab instead.Precomputed example: the adder preset on all five devices, so the page opens instantly. Press Analyze to run it live.
Want measured numbers, not just estimates? Run the one-job hardware check on Qollab, with IBM noise models and IonQ simulators.
Estimated success compared with Qiskit O3, in percentage points. Select a cell to see it on the chip.
Filled qubits are the ones the compiled circuit uses. Couplers that carry more two-qubit gates are drawn thicker and darker. Switch strategies to watch the footprint change.
Solid is the circuit's own two-qubit gates; hatched is routing overhead, the extra gates limited connectivity adds. Same scale on every device.
Each strategy's circuit before compilation, against the input circuit.
Compiled QASM omitted for size; download the optimized QASM or run locally.
Real chips connect only some qubit pairs. When two qubits that must interact are not neighbors, the compiler inserts SWAPs to bring them together, and each SWAP costs three two-qubit gates. That overhead can erase what an optimizer saved.
Each chip has its own two-qubit gate: CX on Falcon, ECR on Eagle, CZ on Heron and Nighthawk, ZZ on IonQ. Every circuit is translated into that gate set, so the same circuit costs different amounts on different hardware.
T gates and other non-Clifford rotations are the expensive part of fault-tolerant quantum computing, so cutting them matters for the future. On today's noisy chips, two-qubit gates usually dominate the error, so a T-count win alone does not guarantee a better run.
For each compiled circuit, Landfall multiplies the chance that every gate and every readout succeeds, using the device's calibration data. It ignores idle decoherence and crosstalk, so differences under half a point count as ties.
Fewer gates usually wins, but not always. The compiler places your circuit on specific qubits, and qubits differ in quality. A circuit with more two-qubit gates can land on better qubits and come out ahead, so Landfall ranks by estimated success, not by count.