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

Qiskit / qiskit-addon-sqd-hpc / 36063769083
75%

Build:
DEFAULT BRANCH: main
Ran 24 Sep 2026 09:49PM UTC
Jobs 1
Files 15
Run time 1min
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

24 Sep 2026 09:48PM UTC coverage: 74.775% (-0.3%) from 75.052%
36063769083

push

github

web-flow
Parallelize recover_configurations with OpenMP (#60)

The per-bitstring correction in recover_configurations is embarrassingly
parallel apart from the duplicate-removal step, which is a reduction.
When the consumer compiles with OpenMP enabled, correct the bitstrings in
parallel and then remove duplicates on a single thread, in input order.
The library stays header-only and depends only on the C++ standard
library; the parallel path is guarded by _OPENMP and the previous serial
behavior is used otherwise.

Randomness is the other shared point.  Rather than drawing from the single
generator sequentially (which cannot be parallelized), each work item is
given its own stream, selected by the caller's generator type:

  * A counter-based engine (one with set_counter, such as the C++26
    std::philox_engine) is keyed by bitstring index via set_counter, so the
    result -- including the order of the returned vectors -- is identical
    for any number of threads.
  * Any other engine must be seedable; each thread uses an independently
    seeded copy, giving valid but thread-count-dependent results.
  * A generator that is neither is rejected at compile time under OpenMP
    (a static_assert), and remains usable in a serial build.

Duplicate removal now emits each distinct bitstring once in first-seen
(input) order, so the output is deterministic and identical between the
serial and parallel paths without an O(n log n) sort.  It continues to use
the flat hash map from internal/dense_map.hpp.  This changes the returned
ordering (and, under parallelism, the specific bitstrings selected for a
given seed) relative to previous releases; the returned distribution
remains a valid refinement.

The reusable RNG-keying helpers live in a new internal header,
internal/parallel-rng.hpp, so future distributed (MPI) work can share
them.  Add a CMake option SQD_ENABLE_OPENMP to build the tests and
benchmarks with OpenMP, a development-version CI job that runs the suite
at... (continued)

820 of 1226 branches covered (66.88%)

Branch coverage included in aggregate %.

16 of 16 new or added lines in 1 file covered. (100.0%)

12 existing lines in 1 file now uncovered.

757 of 883 relevant lines covered (85.73%)

276670.11 hits per line

Coverage Regressions

Lines Coverage ∆ File
12
58.48
3.5% include/qiskit/addon/sqd/internal/vendor/unordered_dense/unordered_dense.h
Jobs
ID Job ID Ran Files Coverage
1 36063769083.1 24 Sep 2026 09:49PM UTC 15
74.77
GitHub Action Run
Source Files on build 36063769083
  • Tree
  • List 15
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36063769083
  • 3252ae7e on github
  • Prev Build on main (#35385231671)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc