Skip to content

PREDICT-EPFL/piqp_benchmarks

Repository files navigation

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.

About

QP Benchmarks for the PIQP Solver

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages