Is there any overview of current solvers compatible with `JuMP`?

The JuMP documentation enumerates several optional optimization solvers. I am curious if this represents the complete collection of optional solvers currently compatible with JuMP, and whether there exists a consolidated comparison of their performance. For instance, which among them are open-source, which are closed-source, what types and scales of problems each can solve, and how about their solving performance (if there is any impartial performance ranking available)? What particularly interests me is if there are any solvers among them that are native to Julia? By “native”, I mean specifically designed for Julia or JuMP, open-source at the very least, and perhaps slightly inferior in performance compared to commercial solvers, but capable of tackling most common types of optimization problems.

Thanks in advance!

Here’s some information you’re looking for:

performance depends on too many external factors, so it’s virtually meaningless to project onto the real line (i.e. compose a ranking). Particular formulations, sparsity, preprocessing time, and many more can influence the performance of any solver. Not to mention the parameters chosen for the particular one.

There are solvers written in julia (e.g. ProxSDP, COSMO, Clarabel, Tulip to name just a few which I use), but on particular problems their performance isn’t any better or worse from the external ones (at least to my experience). Some of the solvers are considered “the best [open source] in the field” (like HiGHS), some are performing better than any closed source available on my particular problems (here it is SCS).

There is no easy answer here and you’ll have to see directly what scales the best on your problems :wink:

4 Likes

Thank you for your answer! It’s very helpful! :handshake: :handshake:

This reference may be helpful, Decison Tree for Optimization Software, I think most but not all references solvers are accessible from JuMP.

3 Likes

Good! :+1: