Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Benchmark and profile the performance of IP solvers in our using case #36

Open
GiggleLiu opened this issue Dec 23, 2024 · 2 comments
Open
Labels
documentation Improvements or additions to documentation

Comments

@GiggleLiu
Copy link
Collaborator

  • Gurobi
  • HiGHS
  • SCIP
@GiggleLiu GiggleLiu added the documentation Improvements or additions to documentation label Dec 23, 2024
@ArrogantGao
Copy link
Collaborator

ArrogantGao commented Dec 27, 2024

I benchmarked some different solvers supporting JuMP.jl, both IP and LP, see https://github.com/ArrogantGao/JuMPSolver_benchmarks

I used a bottle neck case for solving the MIS problem, see https://arrogantgao.github.io/OptimalBranching.jl/dev/generated/rule_discovery/#Bottleneck-case, which take about 15000 variables and 71 constraints.
The results are summarized as below.

Integer programming:

Solver CX Time
SCIP 1.0932155031 0.62172113
HiGHS 1.0932155031 1.04424529
GLPK 1.0932155031 0.18660210

and Cbc crash directly

Linear programming:

Solver cx Time
Ipopt 1.1213026185 1.194681631
ECOS 1.1240009475 6.343032757
Cbc 1.0932155031 0.069755896
GLPK 1.0932155031 0.182092119
HiGHS 1.0932155031 0.126678814
MadNLP 1.1202363410 3.143519999
SCIP 1.0985375825 0.582486811
SDPA 1.1231308607 2.564197325
Tulip 1.1187268938 0.306318450

Hypatia, Loraine and DSDP are slow in this case and take more than 100s to solve.
COSMO, QSQP, ProxSDP and SCS failed to solve the problem.

@ArrogantGao
Copy link
Collaborator

ArrogantGao commented Dec 28, 2024

I added some benchmark for the commerical solver CPLEX, it is indeed much faster then the non commerical ones, about 10 time faster than HiGHS.

CPLEX does not allow me to share the results, one can run the code themselves to verify.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants