Awesome
Benchmark examples for the PIQP solver
This repo is based on a striped down version of osqp_benchmarks, i.e., it only contains the Maros Meszaros problems.
These are the scripts to compare the following Quadratic Program (QP) solvers
- PIQP
- OSQP
- SCS
- PROXQP
- QPALM
- GUROBI
- MOSEK
To run these scripts you need pandas
and cvxpy
installed.
All the scripts come with options (default to False
)
--parallel
for parallel execution across instances--verbose
for verbose solvers output (they can be slower than necessary while printing)--high_accuracy
for high accuracy (eps_abs=1e-08
,eps_rel=1e-09
) solver settings + optimality checks (default iseps_abs=1e-03
,eps_rel=1e-04
)
Maros Meszaros problems
These are the hard problems from the Maros Meszaros testset converted using CUTEst and the scripts in the maros_meszaros_data/ folder. In these benchmarks we compare PIQP with OSQP, SCS, PROXQP, GUROBI and MOSEK.
To execute these tests run
python run_maros_meszaros_problems.py
Results
The resulting shifted geometric means for low accuracy (eps_abs=1e-03
, eps_rel=1e-04
) are
PIQP | OSQP | SCS | PROXQP | QPALM | GUROBI | MOSEK |
---|---|---|---|---|---|---|
1.0 | 7.55 | 11.38 | 31.72 | 3.45 | 6.72 | 5.29 |
and for high accuracy (eps_abs=1e-08
, eps_rel=1e-09
) are
PIQP | OSQP | SCS | PROXQP | QPALM | GUROBI | MOSEK |
---|---|---|---|---|---|---|
1.0 | 42.66 | 31.62 | 26.61 | 6.97 | 3.46 | 5.86 |
These results have been obtained on an AMD Ryzen Threadripper 3990X 64-Core @ 4.3GHz CPU.
Citing
If you are using these benchmarks for your work, please cite the OSQP paper and PIQP paper.