I have previously used MOSEK for all my SDP needs. Recently, though, I am having a hard time trying to solve some large problems, due to lack of memory. In similar questions around the forum, SCS has been recommended for very large instances due to lower memory requirements. That's led me to a series of questions:
- Is there some rules of thumb for choosing appropriate solvers depending on problem instances, or is my best chance just trying out all of them?
- What are the differences between MOSEK, SCS and other SDP solvers, and what is the trade-off of one w.r.t. the other? (i.e., is SCS generally slower? Does MOSEK generally consumes more memory? Or is it all dependent on the specific instance one tries to solve?)
- When dealing with dense, large SDPs, what would be my best bets, solver-wise?
- Does having access to a sizeable cluster helps in any way? For instance, are there solvers that can exploit distributed memory? Or is my best choice going for a single node with a large memory?
So far I use solvers mostly as black-boxes, thus I am having some trouble trying to gather these answers.
Timemight be harder to answer, but i guess first-oder methods are often faster for low-accuracy (while taking a long time to converge when high-acc is needed). SCS papers or maybe even "matrix-free IPM" papers might give some more ideas. – sascha Apr 04 '22 at 20:28