Muzzle the Shuttle
Abdullah Ash Saki, Rasit Onur Topaloglu, Swaroop Ghosh. Muzzle the Shuttle: Efficient Compilation for Multi-Trap Trapped-Ion Quantum Computers. DATE 2022. arXiv:2111.07961 · their code: ashsaki/MTS-QCCD-Compiler (Apache-2.0)
QCCDSim's six-trap line (L6): six traps in a row, each with a capacity of 17 ions -- the 15 the compiler places in it at the start, and 2 places kept free for ions passing through. Five benchmarks; the metric is the number of shuttles (moves of one ion from a trap to the next).
| configuration | shuttles: their code | our replay | the paper | the paper's rules |
|---|---|---|---|---|
| Supremacy-64: the QCCDSim baseline ▶ watch it in the Studio | 365 shuttles = ours | 365 shuttles | 365 shuttles equalTable II, [murali-ti] column | all 11 rules hold |
| QAOA MaxCut-64: the QCCDSim baseline ▶ watch it in the Studio | 1,552 shuttles = ours | 1,552 shuttles | 1,552 shuttles equalTable II, [murali-ti] column | all 11 rules hold |
| SquareRoot-78: the QCCDSim baseline ▶ watch it in the Studio | 727 shuttles = ours | 727 shuttles | 717 shuttles differsTable II, [murali-ti] column | all 11 rules hold |
| QFT-64: the QCCDSim baseline ▶ watch it in the Studio | 241 shuttles = ours | 241 shuttles | 241 shuttles equalTable II, [murali-ti] column | all 11 rules hold |
| QuadraticForm-64: the QCCDSim baseline ▶ watch it in the Studio | 228 shuttles = ours | 228 shuttles | 228 shuttles equalTable II, [murali-ti] column | all 11 rules hold |
| Supremacy-64: Muzzle the Shuttle ▶ watch it in the Studio | 261 shuttles = ours | 261 shuttles | 223 shuttles differsTable II, This Work column | R1 fails 10 others hold |
| fidelity | 0.579 = ours | 0.579 | – | |
| QAOA MaxCut-64: Muzzle the Shuttle ▶ watch it in the Studio | 994 shuttles = ours | 994 shuttles | 957 shuttles differsTable II, This Work column | R1 fails 10 others hold |
| fidelity | 0.0285 = ours | 0.0285 | – | |
| SquareRoot-78: Muzzle the Shuttle ▶ watch it in the Studio | 339 shuttles = ours | 339 shuttles | 355 shuttles differsTable II, This Work column | R1 fails 10 others hold |
| fidelity | 0.4042 = ours | 0.4042 | – | |
| QFT-64: Muzzle the Shuttle ▶ watch it in the Studio | 196 shuttles = ours | 196 shuttles | 196 shuttles equalTable II, This Work column | R1 fails 10 others hold |
| fidelity | 0.1827 = ours | 0.1827 | – | |
| QuadraticForm-64: Muzzle the Shuttle ▶ watch it in the Studio | 164 shuttles = ours | 164 shuttles | 164 shuttles equalTable II, This Work column | R1 fails 10 others hold |
| fidelity | 0.2151 = ours | 0.2151 | – |
Made by sched, a list scheduler we wrote for the QCCDSim family's model; it is not the compiler that compiles this website's leaderboard entries.
The same scheduler as for QCCDSim, on the paper's device. It minimises time, not shuttles, so it is compared on both. Each schedule below is replayed by the same checker as the paper's, with the same timing law and circuit; an operation the paper's law does not price is refused.
| configuration | shuttles: QCCDSim | Muzzle | ours | time: QCCDSim | Muzzle | ours | the paper's rules |
|---|---|---|---|---|---|---|---|
| Supremacy against: Supremacy-64: the QCCDSim baseline ▶ watch ours in the Studio | 365 | 261 * | 326 | 278,346 µs | 191,444 µs * | 69,824 µs | all 11 rules hold all 11 rules hold under QCCDSim's chain bookkeeping and the physical one, each qubit's order kept |
| SquareRoot against: SquareRoot-78: the QCCDSim baseline ▶ watch ours in the Studio | 727 | 339 * | 620 | 595,972 µs | 340,978 µs * | 370,588 µs | all 11 rules hold all 11 rules hold under QCCDSim's chain bookkeeping and the physical one, each qubit's order kept |
| QAOA against: QAOA MaxCut-64: the QCCDSim baseline ▶ watch ours in the Studio | 1,552 | 994 * | 2,255 | 1,021,860 µs | 736,476 µs * | 729,126 µs | all 11 rules hold all 11 rules hold under QCCDSim's chain bookkeeping and the physical one, each qubit's order kept |
| QFT against: QFT-64: the QCCDSim baseline ▶ watch ours in the Studio | 241 | 196 * | 2,452 | 356,442 µs | 430,816 µs * | 1,104,132 µs | all 11 rules hold all 11 rules hold under QCCDSim's chain bookkeeping and the physical one, each qubit's order kept |
| QuadForm against: QuadraticForm-64: the QCCDSim baseline ▶ watch ours in the Studio | 228 | 164 * | 2,236 | 363,152 µs | 397,668 µs * | 1,134,040 µs | all 11 rules hold all 11 rules hold under QCCDSim's chain bookkeeping and the physical one, each qubit's order kept |
* Muzzle's own schedule breaks trap capacity (see the note above); its numbers are shown as its code printed them.
On the paper's own measure, the number of shuttles, Muzzle's compiler stays ahead of ours on every benchmark; ours is faster where it is faster.
The rules each run is judged by
This paper's model is written as the rule sets QCCDSim's rules, QCCDSim's rules, with a physical gate swap. Every run above was replayed and each rule of the set evaluated on it. Our schedules are held to the same rules, and also keep each qubit's gates in the circuit's exact order (R25): we may not reorder a circuit, even where its gates commute.
| run | R0 | R1 | R2 | R3 | R6b | R8 | R14 | R24 | R25 | R27 | R29 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Supremacy-64: the QCCDSim baseline · QCCDSim's rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| QAOA MaxCut-64: the QCCDSim baseline · QCCDSim's rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| SquareRoot-78: the QCCDSim baseline · QCCDSim's rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| QFT-64: the QCCDSim baseline · QCCDSim's rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| QuadraticForm-64: the QCCDSim baseline · QCCDSim's rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Supremacy-64: Muzzle the Shuttle · QCCDSim's rules, with a physical gate swap | ✓ | ✗ 2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| QAOA MaxCut-64: Muzzle the Shuttle · QCCDSim's rules, with a physical gate swap | ✓ | ✗ 3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| SquareRoot-78: Muzzle the Shuttle · QCCDSim's rules, with a physical gate swap | ✓ | ✗ 2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| QFT-64: Muzzle the Shuttle · QCCDSim's rules, with a physical gate swap | ✓ | ✗ 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| QuadraticForm-64: Muzzle the Shuttle · QCCDSim's rules, with a physical gate swap | ✓ | ✗ 4 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ours: Supremacy · QCCDSim's rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ours: Supremacy · QCCDSim's rules, with a physical gate swap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ours: SquareRoot · QCCDSim's rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ours: SquareRoot · QCCDSim's rules, with a physical gate swap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ours: QAOA · QCCDSim's rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ours: QAOA · QCCDSim's rules, with a physical gate swap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ours: QFT · QCCDSim's rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ours: QFT · QCCDSim's rules, with a physical gate swap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ours: QuadForm · QCCDSim's rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ours: QuadForm · QCCDSim's rules, with a physical gate swap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
✓ the rule holds on that run; ✗ it fails, with the number of counterexamples (hover for the first); – it does not apply to that run (hover for why); · the rule is not in that run's rule set.
what each rule says
setup_ok() and (for all o in operations: well_formed(o) and found(o)) and (for all i in ions: position(i, final()) != none)Each operation names its ions and where they are; replaying the execution from the start must find them there, and every ion must end it standing in a site.
for all s in sites, t in instants: occupancy(s, t) <= capacity(s)An ion standing in a site, or passing through it, takes one of its places.
for all j in junctions, t in instants: occupancy(j, t) <= 1Where three or more rails meet, only one ion may be at any moment, resting or passing through.
for all r in rails, t in instants: occupancy(r, t) <= capacity(r)No more ions travel along one rail at once than the rail is built for (one, on most devices).
(for all g in two_qubit_gates, i in ions(g): position(i, start(g)) = site(g)) and (for all g in two_qubit_gates where size(declared_sites(g)) > 0: site(g) in declared_sites(g))Both ions of a two-qubit gate are in the same trap when it starts, and in the trap the programme names for it, if it names one.
for all a, b in operations where a != b and simultaneous(a, b): disjoint(ions(a), ions(b))No ion takes part in two operations at once: it cannot be gated in one place while it is carried to another.
for all m in splits: at_chain_end(m) or swap_paid(m)An ion leaves its chain from the end that faces the rail; an ion further in must first be swapped to that end, which costs gates.
(for all c in circuit_ops where needs_gate(c): gate_count(c) >= 1) and (for all g in two_qubit_gates: serves_circuit(g))Each two-qubit gate of the input circuit is carried out, and the execution performs no two-qubit gate the circuit does not ask for.
for all c1, c2 in circuit_ops where next_on_qubit(c1, c2) and performed(c1) and performed(c2): end(last(c1)) <= start(first(c2))On every qubit, each operation is over before the next one on that qubit begins, in the order the circuit is written -- even where two of them would commute.
for all a, b in operations where a != b and kind(a) in serial_kinds and kind(b) in serial_kinds and site(a) = site(b) and site(a) != none: not simultaneous(a, b)The operations of the kinds listed in serial_kinds hold their trap: two of them in one trap never overlap in time.
for all o in operations where clocked(o): approx(duration(o), clock(o))Each operation's duration is the one the model's duration law gives it.