Help us shape the future of Go! Take the 2026 Go Developer Survey

qpbench

command module
v0.0.0-...-8261c47 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2026 License: BSD-3-Clause Imports: 18 Imported by: 0

Documentation

Overview

qpbench times Quadprog against OSQP v1.0.0 and the quadprog package in interleaved rounds, one thread each, and prints the Markdown tables of docs/perf.md.

Usage (from the repository root):

cd tools/qpbench && GOWORK=off go run . --repo ../.. --rounds 5

What is compared (design-qp.md section 7):

  • ADMM against OSQP on instances of the classes of osqp_benchmarks (random QP, equality QP, portfolio, Lasso, Huber, SVM, control; problem_classes/*.py, opened for this) and on small dense ones: setup time and solve time apart, iteration counts side by side. OSQP's times are its own (info.setup_time, info.solve_time, measured in C), as osqp_benchmarks reports them.
  • the active set against the quadprog package (Goldfarb–Idnani, Fortran) on dense positive definite instances, n up to 1000: setup plus solve against one call, the call overhead of an empty-sized solve subtracted.
  • the share of our ADMM time spent in go-sparse's LDLᵀ refactorisation and triangular solves, reported separately from the rest.

A round is the Go benchmark followed by the reference run, on the same instance files. The 1-minute load average is checked before the first round and after each one: a round that ends above --max-load is discarded and run again, and the measurement fails if the budget of attempts runs out.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL