Build1 distinct publisher3 min readPublished
IBM's compiler benchmark pins the seeds that build circuits but not the one that compiles them. On one circuit a real 5.37% change reads as a 10% regression a quarter of the time.
The Engineer · Build desk

product
Langflow's exploited-in-the-wild count climbed from one bug to twelve in six months1 distinct publisher
build
Hugging Face's $13B process puts most teams' model pipeline under a single owner2 distinct publishers
product
Minimus's wind-down makes the hardened base image a continuity line item1 distinct publisher
product
IT's AI shopping list is inverted: 46.5% want automation, 71% of their AI tools are invisible1 distinct publisher
Compiled by The EngineerSomething wrong?How this is made
Here is what actually happens when you call the Qiskit gym. `generate_preset_pass_manager` takes a `seed_transpiler` argument that pins the routing pass, which uses randomness [6]. Benchpress does not pass it [2]. Circuit construction is pinned, `seed=12345`, fourteen times over [7]. The compilation is not. So every gate count the suite prints is one draw from a distribution nobody measured [7].
The BQSKit gym in the same repository does seed its compiler, at `seed=0` [8]. `seed_transpiler` is a Qiskit-specific API the other gyms cannot call, so this is a Qiskit-gym problem and only that [8]. That is worth stating plainly, because it narrows the fix to one line rather than a rewrite.
The consequence is measurable. On `bv_n140`, a Bernstein-Vazirani circuit named in Qiskit issue #14402, mapped to a heavy-hex lattice from Qiskit 1.4.3 to 2.0.0, the true change over 400 seeds per version is +5.37% [3]. Under the suite's own three-run protocol the verdict crosses the 10% regression line 24.4% of the time [1]. The compiler got a little slower, and the instrument calls it a regression a quarter of the time anyway.
"Run it more" does not rescue you cheaply. Twenty runs per version is roughly forty hours of compute at the issue's stated two hours per suite run, and it still leaves a 3.74% error rate [4]. Taking the minimum of three runs instead of the mean, a common instinct, roughly doubles every rate: `bv_n280` goes from 17.3% to 28.4% [5]. The minimum is the wrong estimator when the noise is the thing you are measuring.
The author checked the number he trusted least before publishing it. The original 200 seeds all came from one contiguous block inside one process, holding hash randomisation, allocator layout, and any cached RNG constant [9]. A disjoint set of 200 seeds spanning 5.9 million to 1.08 billion, run across ten fresh processes with differing `PYTHONHASHSEED`, returned 22.6% against the contiguous set's 26.3%, each inside the other's interval [9]. The variance is real; it is not an artefact of how the seeds were laid out.
That reframes issue #14402 itself. It reports +46.1% for `bv_n280` [10]. A single three-run comparison of the same circuit under the same protocol returns anywhere from -10.5% to +100.0%, with a 95% range of [+9.3%, +57.2%] [10]. The +46.1% sits at the 88th percentile of that distribution; the same range extends below the 10% threshold [11]. The reported figure is real: it is one draw reported as a measurement.
To keep one circuit from being an anecdote, the analysis was pre-registered: selection rule, endpoint, and labels committed before the data, with checkable commit timestamps [12]. Across the eligible set, 12 of 26 circuits have a decision-error interval that excludes zero, 46.2% with a Wilson 95% of [28.8%, 64.5%] [13].
Treat that 46.2% carefully. The 26 circuits come from eleven algorithm families, and within a family results are nearly all-hit or all-miss [14]. A cluster bootstrap over families widens the interval to [17.4%, 81.0%] [14]. The effect is not 26 independent observations; the honest sample is closer to eleven. The direction survives that correction, though the precision does not.
Ranked by verification strength, evidence, and original report placement.
The 26 circuits come from eleven algorithm families with nearly all-hit or all-miss results within a family; a cluster bootstrap over families widens the interval to [17.4%, 81.0%].
On the bv_n140 circuit, the suite's three-run protocol reports a >=10% regression 24.4% of the time, against a true change of +5.37%.
IBM's Benchpress pins the seeds that build its circuits and passes no seed to the code that compiles them, in the Qiskit gym.
On bv_n140 mapped to a heavy-hex lattice, going from Qiskit 1.4.3 to 2.0.0, the real change measured over 400 seeds per version across 21 processes is +5.37%.
Twenty runs per version, about forty hours of compute at the issue's stated two hours per suite run, still leaves a 3.74% decision-error rate.
Taking the minimum of three runs instead of the mean roughly doubles every error rate; bv_n280 goes from 17.3% to 28.4%, and all eight circuits tested still err.
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · September 4, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One author, unusually auditable
Every number traces to a single self-published write-up, and that write-up is built to be checked: commit hashes placing pre-registration and analysis code a day ahead of the raw data, a disjoint seed block re-run across ten processes to rule out per-process state, and an outside audit of the ~4,600 lines of Python that caught a numeric inventory comparing a function call with itself. The underlying mechanism is not in dispute either, since Qiskit documents the seed argument the gym omits. What no one has done is run it independently.
Measurement, not uptake
What our coverage can see is the author's own runs plus one Qiskit issue quoting a regression figure. Nothing indicates whether Benchpress maintainers have added the argument, how many teams gate merges or reverts on these verdicts, or whether any past decision was revisited, so there is no adoption to score.
Trimmed below what the data would allow
The framing is narrower than the material would permit. An earlier draft generalised across the suite and the author pulled it back to the Qiskit gym once he found BQSKit seeds at seed=0. The 46.2% suite-level rate was withdrawn as a headline after his own family-level bootstrap widened the interval to [17.4%, 81.0%], and a ρ = +0.876 'mechanism' was retracted as arithmetic that simulated data with no compiler in it reproduces. The surviving error rates are single-circuit and labelled as such.
Reputational stake, no commercial one
Nothing is being sold in this piece. It runs on dev.to with no vendor behind it, and its target is IBM's suite rather than a rival product. The pressure that does exist belongs to a self-published researcher who needs a striking number to hold up, and the four withdrawals left in the repository with the evidence that defeated them run against that pressure rather than with it.
Mechanism firm, magnitude local
That an unseeded stochastic routing pass yields variable gate counts follows from Qiskit's documented API, and the bv_n140 rate held up under a fresh seed range and fresh processes. How far 24.4% travels past that circuit is precisely the part the author declines to defend, the repository state is pinned to one revision no one else has re-checked, and the whole account rests on a single publisher.