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:

  1. 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?
  2. 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?)
  3. When dealing with dense, large SDPs, what would be my best bets, solver-wise?
  4. 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.

  • 2
    $\begingroup$ While there are probably a lot of tough/opionionated questions here, one of the easier / more obvious categorization one can throw at this: Mosek is all about interior-point methods while SCS is a first-order method. There is a clear trade-off about higher-memory/higher-accuracy/(higher robustness) vs. lower-memory/lower-accuracy(less robustness). Time might 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. $\endgroup$
    – sascha
    Apr 4, 2022 at 20:28
  • $\begingroup$ You might also consider (1.5? order method, sort of) SuperSCS, which uses limited memory Quadi-Newton and Anderson acceleration, to maybe get superlineasr convergence, for not much more memory than SCS. That is, f you can get it to compile. I've never used it because I didn't succeed in compiling it, nor did several other people. $\endgroup$ Apr 4, 2022 at 21:13
  • 2
    $\begingroup$ Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. $\endgroup$
    – Community Bot
    Apr 4, 2022 at 22:15


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.