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. CSDP, A C Library for Semidefinite Programming. Optimization Methods and Software 11(1):613-623, 1999. Preprint.
- B. Borchers. CSDP 2.3 User's Guide. Optimization Methods and Software 11(1):597-611, 1999. Preprint.
- B. Borchers and J. G. Young. Implementation of a primal–dual method for SDP on a shared memory parallel architecture. Computational Optimization and Applications 37(3):355-369, 2007. Preprint.
CSDP has been used as an SDP solver within a number of other research projects. A list of publications in which CSDP has been used is available.
The SDPLIB collection of test problems in semidefinite programming can be used to test your installation of CSDP.
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/.
Hector Corrada Bravo has developed an interface between R and CSDP.
Benjamin Kern is developing a Python interface to CSDP.
The most recent stable version of CSDP is 6.1.1. You can obtain a copy of the source code by downloading a compressed tar archive. Instructions for building and installing CSDP can be found in the INSTALL file in the top level Csdp directory.
The current version of the CSDP User's Guide is also available.
CSDP is distributed as part of the Debian ("squeeze"/testing) and Ubuntu (10.04) distributions. The package is <a href="http://packages.debian.org/squeeze/science/coinor-csdp">coinor-csdp</a>. If you're using a Debian based Linux distribution, this is by far the quickest way to install a working (but not necessarily high performance) copy of CSDP.
Binary versions of CSDP for several architectures/OS's are available. Note that these binaries are not optimized. In particular, these binary versions don't take advantage of multiple processors. Some of the binaries are for older versions of CSDP, since I no longer have access to the systems on which they were built.
- CSDP 6.1.0 for Linux, i386, Pentium 4 or higher, including post 2003 AMD processors that support SSE2
- CSDP 6.1.0 for Windows, Pentium 4 or higher, including post 2003 AMD processors that support SSE2
- CSDP 6.0.1 for Mac OS X 10.4, G3
- CSDP 6.0.1 for Mac OS X 10.4, G4
- CSDP 6.0.1 for Mac OS X 10.4, G5
- CSDP 6.0.1 Mac OS X 10.4, Intel Processors
Please contact the author if you need a binary version for some other computer architecture/OS.
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
to checkout a copy of the latest revision. If you would like to submit a ticket, you must first register with TRAC.
If you have questions about this web site or the code, please contact the author.
Welcome to Trac 0.9.5
Trac is a minimalistic approach to web-based management of software projects. Its goal is to simplify effective tracking and handling of software issues, enhancements and overall progress.
All aspects of Trac have been designed with the single goal to help developers write great software while staying out of the way and imposing as little as possible on a team's established process and culture.
As all Wiki pages, this page is editable, this means that you can modify the contents of this page simply by using your web-browser. Simply click on the "Edit this page" link at the bottom of the page. WikiFormatting will give you a detailed description of available Wiki formatting commands.
"trac-admin yourenvdir initenv" created a new Trac environment, containing a default set of wiki pages and some sample data. This newly created environment also contains documentation to help you get started with your project.
TracGuide is a good place to start.
The Trac Team
- TracGuide -- Built-in Documentation
- The Trac project -- Trac Open Source Project
- Trac FAQ -- Frequently Asked Questions
- TracSupport -- Trac Support
For a complete list of local wiki pages, see TitleIndex.