Skip to content

Latest commit

 

History

History
57 lines (40 loc) · 2.38 KB

README.md

File metadata and controls

57 lines (40 loc) · 2.38 KB

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 is eps_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

maros_meszaros_problems

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

maros_meszaros_problems_high_accuracy

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.