Home

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

To run these scripts you need pandas and cvxpy installed.

All the scripts come with options (default to False)

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

PIQPOSQPSCSPROXQPQPALMGUROBIMOSEK
1.07.5511.3831.723.456.725.29
<p align="center"> <img src="results/maros_meszaros_problems/maros_meszaros_problems.png" width="700" alt="maros_meszaros_problems" align="center"/> </p>

and for high accuracy (eps_abs=1e-08, eps_rel=1e-09) are

PIQPOSQPSCSPROXQPQPALMGUROBIMOSEK
1.042.6631.6226.616.973.465.86
<p align="center"> <img src="results/maros_meszaros_problems_high_accuracy/maros_meszaros_problems_high_accuracy.png" width="700" alt="maros_meszaros_problems_high_accuracy" align="center"/> </p>

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.