DSDP.jl
DSDP.jl is a wrapper for the DSDP solver.
It has two components:
- a thin wrapper around the complete C API
- an interface to MathOptInterface
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