I am working on a problem that involves semidefinite programming (constrained optimization of fairly large positive definite matrices). The software is written in C++ and calls DSDP 5.8 to solve the SDP problem. It works as advertised on small/medium test problems (up to 200 x 200 matrices, ~$10^5$ constraints), but dies due to indexing errors on larger tasks. The reason is, of course, that the authors of DSDP used int variables for indices (and int[]-s for indexing arrays) instead of e.g. size_t or long and with the larger problems the 4 byte int-s eventually overflow.

Before I start modifying a C source that has not been updated since 2006, I thought I might ask the community here: does anyone have, by any chance, a modified version of DSDP that uses size_t or long for indices (and size_t[] for the index arrays)? These types are usually 8 bytes long on modern 64-bit platforms.

My other option would be to swap out DSDP and use another SDP solver instead. Please understand that I am reluctant to do this because I would have to adapt my software to a new API. Having said that, feel free to recommend open-source SDP solvers for first-order cone programming that can deal with large problems. I am aware of CVXOPT but that is written in Python; and MOSEK is not FOSS as far as I can tell.

  • $\begingroup$ I would go as far as to say that MOSEK is the only "serious" modern SDP solver. DSDP by comparison is old, slow, and not well-maintained. You can get a free academic license for MOSEK. $\endgroup$ – Richard Zhang Apr 12 '18 at 20:47
  • 1
    $\begingroup$ There are several reasonably robust open source primal-dual SDP solvers (SeDuMi (MATLAB) SDPT3 (MATLAB), SDPA (C++), and my code, CSDP (C)) Hans Mittelman's benchmark report is a useful way to compare them. SCS is an open source solver that uses a first order method that can solve some very large scale problems. $\endgroup$ – Brian Borchers Apr 13 '18 at 0:49
  • $\begingroup$ @RichardZhang: according to the MOSEK webpage, "We provide faculty, students or staff at degree-granting academic institutions a free license". Unfortunately I do not fall into these categories :-( $\endgroup$ – Laryx Decidua Apr 13 '18 at 11:00
  • $\begingroup$ @BrianBorchers: Thank you for the SCS suggestion. I tried it out, works nicely. $\endgroup$ – Laryx Decidua Jun 18 '18 at 7:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.