Replies: 2 comments 12 replies
-
|
Commercial MIP solvers benefit from person-decades of development investment - funded by high license fees. They have parallel tree search, and all sorts of tricks to handle different classes of problem. You may have seen "two orders of magnitude" difference in performance on your instances, but it's about one order of magnitude for Mittlemann's benchmarks between HiGHS and Gurobi - and not much more for SCIP and Cbc. HiGHS is looking to parallelise its tree search in 2024. Again YMMV, but for LP on Mittlemann's benchmarks the best open-source solver - HiGHS - is 20 times slower than the best commercial solver (COPT). That's down to the idiosyncratic IPM implementation in HiGHS - which is why it's better than other open-source LP solvers - and parallelism. HiGHS is writing a new solver with the aim of reducing the gap. |
Beta Was this translation helpful? Give feedback.
-
|
I was browsing around the topic of optimization software when I stumbled upon this Throwing in my two cents as someone with significant experience in high performance computing, what I saw browsing around this project was:
Based on my experiences optimizing other math-heavy software (albeit in different problem domains), I’d ballpark a 100-1000x potential speedup from these micro-optimizations, maybe even as much as a 10000x speedup depending on how heavily the sparse array is (ab)used. I’m not even joking about this: HiGHs looks extremely poorly optimized. The insistence of @jajhall on algorithmic improvements to HiGHs in spite of the potential 100-10000x speedup of better micro-optimized C++ only serves to further reinforce my point that theres no magic rhyme or reason the performance of commercial solvers are better. P.s. Also I think I happened to notice a concurrency bug in HiGHS/highs/parallel/HighsSplitDeque.h Line 213 in 3c26f33 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I develop power system software, and part of that involves solving large MIPs.
While testing different solvers, I noticed that the open source ones (Highs, CBC, Scip) perform about the same, while the commercial ones (CPLEX, XPRESS, and Gurobi) perform about the same among them, but are about two orders of magnitude faster than the open source ones for the same MIP, sometimes yielding different solutions that also solve the problem.
This seems to be due to an algorithmic advantage rather than to programming techniques.
¿Do we know what commercial solvers are doing to be much faster?
I've noticed that for LP problems of the kind that I solve, all solvers perform comparably.
Beta Was this translation helpful? Give feedback.
All reactions