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

Qiskit / qiskit / 14318441199 / 1
88%
main: 88%

Build:
DEFAULT BRANCH: main
Ran 07 Apr 2025 08:29PM UTC
Files 789
Run time 19min
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.149% (+0.08%) from 88.066%
14318441199.1

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)

73487 of 83367 relevant lines covered (88.15%)

436669.51 hits per line

Source Files on job 14318441199.1
  • Tree
  • List 789
  • Changed 11
  • Source Changed 6
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 14318441199
  • 2e18f9ba on github
  • Prev Job for on main (#14315098593.1)
  • Next Job for on main (#14321848283.1)
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