Best free SDP, JuMP supported solvers?

There are quite a few free SDP solvers listed in the supported JuMP solvers. I’m wondering (even if just anecdotally) what other’s experiences are like and what folks have found to work well? I have tried maybe half of them with poor results - like hanging for a few hours with no log statements before I kill them or my OS killing them due to segmentation faults. (I’m not looking to bash any packages so don’t ask which packages failed). Any positive experiences out there?

I do not think that sharing concrete negative experience with this or that solver is going to be interpreted as bashing here. If accompanied by details (ideally also the relevant source code), it will certainly be even appreciated.

I think in general, SDP’s are still very hard to solve, and you’re likely to run into issues no matter what solver you use. The most stable would be Mosek or COPT. Other than that… SCS is robust but low accuracy. I’ve had good experiences with Clarabel, but even that failed on some pretty small OPF examples.

None of them hang or segfault though… so if you have reproducible examples, please open an issue.

2 Likes

Thanks @odow! (Unfortunately I cannot share the failing models due to privacy concerns.)

1 Like

@nlaws SCS may “hang” and “segfault” on particularly large models, without any log statements due to decomposition it needs to compute before running its iterations. This usually means that it runs out of memory and it’s killed by OS. Looks similar to segfault though :wink:

If that’s the case you may try to change linear_solver to something else than DirectSolver.

I actually use SCS to solve large SD problems to high accuracy (e.g. unattainable by MOSEK sure to numerics), but on the other hand I have infinite time budget :wink: other solver I had good experiences with is COSMO.

1 Like

Do you have some small OFP problems that are failing in Clarabel that you are able to share? We are trying to build up our benchmarking / testing sets for SDPs in particular.

1 Like

The tests for PowerModels are a good source of small OPF SDP problems where I have no idea what the correct answer is because every time the SCS version updates the results change.

There is also the standard OPF benchmark problems, PGLib-OPF, which are good for scaling studies. PowerModels can be used to build SDP relaxations of the AC OPF problem (dense and sparse) for these data sets.

I’d say CSDP is more reliable regarding information about infeasibility and numerical difficulties (some other codes will tell you they converged, though the point may be far from “true” solution).

I am now experimenting with a high-precision version of my solver Loraine.jl. Have some success with high-order relaxations of (small) polynomial problems. Could you be more specific which of the PowerModels problems are the hard ones? Would be eager to try.