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

Qiskit / qiskit / 11156852763
88%

Build:
DEFAULT BRANCH: main
Ran 03 Oct 2024 06:36AM UTC
Jobs 1
Files 891
Run time 2min
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

03 Oct 2024 05:30AM UTC coverage: 88.873% (+0.001%) from 88.872%
11156852763

push

github

web-flow
Add Rust quantum volume function (#13238)

* Add Rust quantum volume function

This commit adds a new function quantum_volume used for generating a
quantum volume model circuit. This new function is defined in Rust and
multithreaded to improve the throughput of the circuit generation. This
new function will eventually replace the existing QuantumVolume class as
part of #13046. Since quantum volume is a circuit defined by it's
structure using a generator function is inline with the goals of #13046.

Right now the performance is bottlenecked by the creation of the
UnitaryGate objects as these are still defined solely in Python. We'll
likely need to port the class to have a rust native representation to
further speed up the construction of the circuit.

* Adjust type hints on python function

Co-authored-by: Julien Gacon <gaconju@gmail.com>

* Add missing __future__ import

The previous commit was relying on the behavior of the annotations
future import but neglected to add it. This commit corrects the
oversight.

* Add comment on random unitary algorithm

* Reduce allocations random_unitaries

The previous implementation had 4 heap allocations for each random
unitary constructed, this commit uses some fixed sized stack allocated
arrays and reduces that to two allocations one for q and r from the
factorization. We'll always need at least one for the `Array2` that gets
stored in each `UnitaryGate` as a numpy array. But to reduce to just
this we'll need a method of computing the QR factorization without an
allocation for the result space, nalgebtra might be a path for doing
that. While this currently isn't a bottleneck as the `UnitaryGate`
python object creation is the largest source of runtime, but assuming
that's fixed in the future this might have a larger impact.

* Preallocate unitaries for serial path

When executing in the serial path we previously were working directly
with an iterator where the 2q unitaries we're created on the iterator
that we pa... (continued)

136 of 143 new or added lines in 7 files covered. (95.1%)

19 existing lines in 4 files now uncovered.

74278 of 83578 relevant lines covered (88.87%)

375020.93 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
97.44
-2.56% qiskit/circuit/library/quantum_volume.py
6
94.96
crates/accelerate/src/circuit_library/quantum_volume.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
94.02
-0.24% crates/qasm2/src/expr.rs
1
91.45
-0.06% crates/accelerate/src/two_qubit_decompose.rs
5
92.48
0.0% crates/qasm2/src/lex.rs
12
97.15
-0.46% crates/qasm2/src/parse.rs
Jobs
ID Job ID Ran Files Coverage
1 11156852763.1 03 Oct 2024 06:36AM UTC 891
88.87
GitHub Action Run
Source Files on build 11156852763
  • Tree
  • List 891
  • Changed 68
  • Source Changed 0
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 642debf8 on github
  • Prev Build on gh-readonly-queue/main/pr-13259-fee9f771c2c28bd3bc67b364fbed2e71e3b1b805 (#11152249612)
  • Next Build on main (#11157232318)
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