• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Qiskit / qiskit / 14317788042
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: substitute_pi4_rotations
DEFAULT BRANCH: main
Ran 07 Apr 2025 07:50PM UTC
Jobs 1
Files 789
Run time 39min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Apr 2025 07:27PM UTC coverage: 88.175% (+0.1%) from 88.066%
14317788042

push

github

web-flow
Port the full VF2Layout pass to Rust (#14056)

* Port the full vf2layout pass to Rust

This commit provides a full path Rust implementation of the VF2Layout
pass that performs the full pass logic in Rust. We had most of the
pass in Rust already by leveraging rustworkx for its vf2
implementation and the scoring logic in Rust. So all that we did in
Python was create the graphs as inputs to vf2, building the error map
and other rust view objects (since the scoring in Rust predates our
rust data model in Qiskit) and then process each found layout for final
output. This means the performance improvement expected by this commit
is not large since most of the heavy lifting was already in Rust.
Instead what this really enables is running the pass in a Python-free
context, mainly in a C API for executing this pass which will come in a
follow up.

This rust implementation does not cover the full feature set of what the
Python implementation offers. Mainly in the case of no target, coupling
graph randomization (which is a shame we forgot to remove in 2.0, since it
almost always produces worse results), or a user provided error map we
rely on the existing Python implementation. This is a tradeoff because
these use cases are non-standard and having a Rust interface for running
in that mode provides little benefit for the interfaces we're building.

Fixes #12277

* Fix idle qubit handling in layout and free qubit mapping

This commit address some of the panics and failures seen in scheduling
tests. The source of the errors was two fold, the first was the layout
definition coming from the mapping is sparse but we were using nlayout
which doesn't handle that well so we ended up with several sentinel
values persiting to scoring when scoring the layout which caused errors.
The second issue was we were missing the special handling of free qubits
that was added as a performance optimization in #9148 which was causing
other failures since some of the code was expecting th... (continued)

404 of 483 new or added lines in 4 files covered. (83.64%)

13 existing lines in 4 files now uncovered.

73509 of 83367 relevant lines covered (88.18%)

436855.28 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
3
91.38
-8.62% qiskit/transpiler/passes/layout/vf2_layout.py
76
83.4
0.79% crates/accelerate/src/vf2_layout.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
94.79
0.0% crates/accelerate/src/unitary_synthesis.rs
2
92.73
0.25% crates/qasm2/src/lex.rs
3
95.14
-2.08% qiskit/transpiler/passes/layout/vf2_utils.py
7
91.38
-8.62% qiskit/transpiler/passes/layout/vf2_layout.py
Jobs
ID Job ID Ran Files Coverage
1 14317788042.1 07 Apr 2025 07:50PM UTC 789
88.18
GitHub Action Run
Source Files on build 14317788042
  • Tree
  • List 789
  • Changed 12
  • Source Changed 6
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #14317788042
  • 2e18f9ba on github
  • Prev Build on main (#14315098593)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc