Skip to content

Vendor BQM and add paper benchmarks - #110

Open
klamike wants to merge 21 commits into
mainfrom
mk/bench-update
Open

Vendor BQM and add paper benchmarks#110
klamike wants to merge 21 commits into
mainfrom
mk/bench-update

Conversation

@klamike

@klamike klamike commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Note the last commit especially. Seems CPU and GPU were timing different things (in particular, unfairly favoring CPU)

Haven't tested on CUDA.

frapac and others added 21 commits June 22, 2026 17:58
The CPU baseline now solves the presolved, scaled, standard-form instances
the GPU solves, instead of the raw model, and it solves every instance of the
largest batch one after the other. For each batch size b the CPU block gives
the summed sequential cost of instances 1:b and the max per-instance cost
(b CPUs with perfect scaling), the GPU block the cost of the same instances
solved as one batch, so both sides always cover the same problems,
perturbations and iteration counts included.

Both sides report solver construction and solve! as wall-clock times (GPU
synchronized) instead of the solvers' internal counters, whose clocks start at
different points (after the initial point on the CPU, in the constructor on
the GPU). The warmup uses the benchmark's linear solver on the same instance
layout, GPU memory is reclaimed between batch sizes, and the DC-OPF per-step
timings are taken from a fresh initial point on both sides.

Also restore MadNLPHSL for Ma27/Ma57, add the missing sequential CPU helper
in the DC-OPF comparison, and fix the --job flag of the DC-OPF script.

Result layout: nvar, ncon, nnzj, then per batch size a CPU block (converged,
mean iter, summed init, summed solve, max init, max solve) and a GPU block
(converged, mean iter, init, solve).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants