Skip to content

A Julia interface to the DSDP semidefinite programming solver

License

Notifications You must be signed in to change notification settings

jump-dev/DSDP.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSDP.jl

Build Status codecov

DSDP.jl is a wrapper for the DSDP solver.

It has two components:

Affiliation

This wrapper is maintained by the JuMP community and is not an official project of the DSDP developers.

Getting help

If you need help, please ask a question on the JuMP community forum.

If you have a reproducible example of a bug, please open a GitHub issue.

Installation

Install DSDP as follows:

import Pkg
Pkg.add("DSDP")

In addition to installing the DSDP.jl package, this will also download and install the DSDP binaries. You do not need to install DSDP separately.

To use a custom binary, read the Custom solver binaries section of the JuMP documentation.

Use with JuMP

To use DSDP with JuMP, use DSDP.Optimizer:

using JuMP, DSDP
model = Model(DSDP.Optimizer)

MathOptInterface API

The DSDP optimizer supports the following constraints and attributes.

List of supported objective functions:

List of supported variable types:

List of supported constraint types:

List of supported model attributes:

Compile your own binaries

In order to compile your own libdsdp.so to be used of DSDP.jl, use the following

OB_DIR=$(julia --project=. -e 'import OpenBLAS32_jll; println(OpenBLAS32_jll.OpenBLAS32_jll.artifact_dir)')
OB="-L${LIBOB_DIR}/lib -lopenblas"
make DSDPCFLAGS="-g -Wall -fPIC -DPIC" LAPACKBLAS="$OB" dsdplibrary
make DSDPCFLAGS="-g -Wall -fPIC -DPIC" LAPACKBLAS="$OB" SH_LD="${CC} ${CFLAGS} -Wall -fPIC -DPIC -shared $OB" oshared