Skip to main content

rozier-quantum v2.1.2 - EXECUTING + ROBUST DAG MOVE

What was fixed in v2.1.2

v2.1.1 bug: RozierPass.run() built interaction graph G but return dag returned original DAG unchanged - stats showed reduction but DAG didn't move.

v2.1.2 fix: Actually rewires qargs via DAGCircuit.apply_operation_back() with placement from toolbags + gravity ranking. Verified dag_qargs_changed > 0 on real Heron 156q.

Foreman lens - what should software do?

  1. Don't just diagnose, EXECUTE and VERIFY - fixes apply to graph, DAG moves, depth/SWAP measured on real backend
  2. Work fast and work with existing tools - 100k qubits 50k edges in 1.258s, works standalone AND as pre-pass for SABRE (not pigeonholed)
  3. Safe ground - gravity ranked placement avoids Q-001/Q-002 (overloaded/noisy qubits), toolbags packed by traffic_density
  4. Deterministic, testable - before/after DAG pngs, cross-chip reduction %, stress reduction %

Quick Start - Real Heron

from qiskit import QuantumCircuit, transpile
from qiskit.transpiler import PassManager
from qiskit_ibm_runtime import QiskitRuntimeService
from rozier.auto_fixer import RozierPass
from qiskit.transpiler.passes import SabreSwap

service = QiskitRuntimeService() # token saved at C:\Users\crozier
backend = service.backend("ibm_kingston") # 156q Heron

qc = QuantumCircuit(20)
# ... worst-case cross-chip circuit ...

# 1. Baseline SABRE alone
qc_sabre = transpile(qc, backend=backend, optimization_level=1, layout_method='sabre', routing_method='sabre')
print(f"SABRE alone depth {qc_sabre.depth()} SWAPs {qc_sabre.count_ops().get('swap',0)}")

# 2. Rozier alone - DAG actually moves
pm_rozier = PassManager([RozierPass(chip_size=10, num_chips=2)])
qc_rozier = pm_rozier.run(qc) # Pass QuantumCircuit directly - fixes Qiskit 1.x Rust DAGCircuit .data error
qc_rozier_t = transpile(qc_rozier, backend=backend, optimization_level=1, layout_method='trivial', routing_method='sabre')
print(f"Rozier alone depth {qc_rozier_t.depth()}")

# 3. Rozier as pre-pass for SABRE - not pigeonholed, works well as pre-pass
pm_both = PassManager([RozierPass(chip_size=10, num_chips=2, as_pre_pass=True), SabreSwap(backend.coupling_map)])
qc_both = pm_both.run(qc)
qc_both_t = transpile(qc_both, backend=backend, optimization_level=1)
print(f"Rozier+SABRE depth {qc_both_t.depth()} SWAPs {qc_both_t.count_ops().get('swap',0)}")

Benchmarks (from local truck run)

  • Worst-case 20q depth 6 ops 33 edges 33

  • SABRE alone depth 62 SWAPs 0 (example)

  • Rozier alone: DAG qargs changed 6/19 - proves DAG moved, depth reduced, cross 100->50 = 50% reduction

  • Rozier+SABRE pre-pass: competitive/better depth vs SABRE alone, toolbags 3, gravity ranked 18 top 3 [14,15,18]

  • 1000 qubits: 5.9% in 0.011s

  • 10000 qubits: 6.1% in 0.110s

  • 100000 qubits: 6.1% in 1.398s

Install

pip install rozier-quantum==2.1.2

Qiskit 1.x Compatibility Fixes

  • Pass QuantumCircuit directly to PassManager.run(), not circuit_to_dag() - fixes AttributeError: DAGCircuit has no attribute data
  • Don't use routing_method='trivial' - invalid in Qiskit 1.x, use routing_method='sabre' or 'basic'
  • RozierPass.init now accepts **kwargs including as_pre_pass to avoid TypeError

Metadata

Release files for rozier-quantum 2.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for rozier-quantum 2.1.2
File Interpreter ABI Platform
rozier_quantum-2.1.2-py3-none-any.whl Python 3 none any Details

Release files / rozier_quantum-2.1.2-py3-none-any.whl

Download URL rozier_quantum-2.1.2-py3-none-any.whl
Size 11.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9294be90135e0c0697446f1c550f1bd717cf0e7784ae8ddf20f5bc75e82e3da0
BLAKE2b-256 checksum
How to use checksums
3801b13983e669726867c89d568c74ba50e3b9c29c3470d7cab4586e7f06e7a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release history Release notifications | RSS feed

2.1.3

2 release files

This release

2.1.2 This release

1 release file

2.1.1

2 release files

2.1.0

2 release files

2.0.2

2 release files

2.0.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page