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)
--parallelfor parallel execution across instances--verbosefor verbose solvers output (they can be slower than necessary while printing)--high_accuracyfor high accuracy (eps_abs=1e-08,eps_rel=1e-09) solver settings + optimality checks (default iseps_abs=1e-03,eps_rel=1e-04)
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.pyThe 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.
If you are using these benchmarks for your work, please cite the OSQP paper and PIQP paper.

