-
Notifications
You must be signed in to change notification settings - Fork 32
Home
= CSDP, A C Library for Semidefinite Programming =
This is the project page for the CSDP project of COIN-OR.
CSDP is a library of routines that implements a predictor corrector variant of the semidefinite programming algorithm of Helmberg, Rendl, Vanderbei, and Wolkowicz. The main advantages of this code are that it is written to be used as a callable subroutine, it is written in C for efficiency, the code runs in parallel on shared memory multi-processor systems, and it makes effective use of sparsity in the constraint matrices. CSDP has been compiled on many different systems. The code should work on any system with an ANSI C Compiler and BLAS/LAPACK libraries.
Detailed descriptions of CSDP and its parallel version can be found in the following papers.
-
B. Borchers. [http://dx.doi.org/10.1080/10556789908805765 CSDP, A C Library for Semidefinite Programming]. Optimization Methods and Software 11(1):613-623, 1999. [http://euler.nmt.edu/~brian/csdppaper.pdf Preprint].
-
B. Borchers. [http://dx.doi.org/10.1080/10556789908805764 CSDP 2.3 User's Guide]. Optimization Methods and Software 11(1):597-611, 1999. [http://euler.nmt.edu/~brian/csdpuser23.pdf Preprint].
-
B. Borchers and J. G. Young. [http://dx.doi.org/10.1007/s10589-007-9030-3 Implementation of a primal–dual method for SDP on a shared memory parallel architecture]. Computational Optimization and Applications 37(3):355-369, 2007. [http://euler.nmt.edu/~brian/csdpparimp.pdf Preprint].
CSDP has been used as an SDP solver within a number of other research projects. A [wiki:CSDPUsed list of publications in which CSDP has been used] is available.
The [http://euler.nmt.edu/~brian/sdplib/ SDPLIB] collection of test problems in semidefinite programming can be used to test your installation of CSDP.
The current version of the [https://projects.coin-or.org/Csdp/attachment/wiki/WikiStart/csdpuser.pdf CSDP User's Guide] is also available.
The most recent stable version of CSDP is 6.2.0. Precompiled binary version of CSDP for Windows and Linux are available:
- [http://www.coin-or.org/download/binary/Csdp/csdp6.2.0win64.zip CSDP 6.2.0 for 64 bit Windows 7, 8, 10]
- [http://www.coin-or.org/download/binary/Csdp/csdp6.2.0linuxx86_64.tgz CSDP 6.2.0 for x86_64 linux]
Please [mailto:[email protected] contact the author] if you need a binary version for some other computer architecture/OS.
You can obtain a copy of the source code by downloading a [http://www.coin-or.org/download/source/Csdp/Csdp-6.2.0.tgz compressed tar archive]. Instructions for building and installing CSDP can be found in the INSTALL file in the top level Csdp directory.
If you want to access the most recent development version of CSDP, then you can obtain a copy by first installing the subversion tools on your system and then using the svn command:
{{{ svn co https://projects.coin-or.org/svn/Csdp/trunk }}}
There is also a [https://github.com/coin-or/Csdp github repository] that mirrors the subversion repository. Since this github repository is only a mirror of the main repository, please do not submit pull requests through github.
CSDP depends on high-performance BLAS and LAPACK libraries. I've written a [http://brian-borchers.blogspot.com/2017/06/using-blas-and-lapack-on-linux.html blog posting about how to use BLAS and LAPACK on Linux].
Associated with the project is the [http://list.coin-or.org/mailman/listinfo/csdp CSDP mailing list] for general discussion of CSDP and the [http://list.coin-or.org/mailman/listinfo/csdp-tickets CSDP tickets mailing list] for tracking bug reports. If you would like to submit a ticket, you must first [https://projects.coin-or.org/Csdp/register register with TRAC].
If you have questions about this web site or the code, please contact the [mailto:[email protected] author].
Several software packages have built on CSDP or interfaced CSDP to other programming languages:
Ivan D. Ivanov at TU Delft has also modified an earlier version of CSDP for use on a distributed memory system. His version of CSDP is available at [http://lyrawww.uvt.nl/~edeklerk/PCSDP/ http://lyrawww.uvt.nl/~edeklerk/PCSDP/].
Hector Corrada Bravo has developed [http://cran.r-project.org/web/packages/Rcsdp/index.html an interface between R and CSDP.]
Benjamin Kern is developing a [http://ifatwww.et.uni-magdeburg.de/syst/about_us/people/kern/index.shtml Python interface to CSDP].
Benoit Legat and Elias Kuthe have developed [http://github.com/JuliaOpt/CSDP.jl a Julia interface to CSDP].