Installation Guide

Installation Guide

DRAFT: Install Julia. Install JuMP.

Getting Solvers

TODO: Not yet updated for MOI.

Solver support in Julia is currently provided by writing a solver-specific package that provides a very thin wrapper around the solver's C interface and providing a standard interface that JuMP can call. If you are interested in providing an interface to your solver, please get in touch. The table below lists the currently supported solvers and their capabilities.

SolverJulia Packagesolver=LicenseLPSOCPMILPNLPMINLPSDP
Artelys KnitroKNITRO.jlKnitroSolver()Comm.XX
BARONBARON.jlBaronSolver()Comm.XX
BonminAmplNLWriter.jlAmplNLWriter(CoinOptServices.bonmin) *EPLXXXX
''CoinOptServices.jlOsilBonminSolver()''
CbcCbc.jlCbcSolver()EPLX
ClpClp.jlClpSolver()EPLX
CouenneAmplNLWriter.jlAmplNLWriter(CoinOptServices.couenne) *EPLXXXX
''CoinOptServices.jlOsilCouenneSolver()''
CPLEXCPLEX.jlCplexSolver()Comm.XXX
ECOSECOS.jlECOSSolver()GPLXX
FICO XpressXpress.jlXpressSolver()Comm.XXX
GLPKGLPKMath...GLPKSolver[LP|MIP]()GPLXX
GurobiGurobi.jlGurobiSolver()Comm.XXX
IpoptIpopt.jlIpoptSolver()EPLXX
MOSEKMosek.jlMosekSolver()Comm.XXXXX
NLoptNLopt.jlNLoptSolver()LGPLX
SCSSCS.jlSCSSolver()MITXXX

Where:

* requires CoinOptServices installed, see below.

To install Gurobi, for example, and use it with a JuMP model m, run:

Pkg.add("Gurobi")
using JuMP
using Gurobi

m = Model(solver=GurobiSolver())

Setting solver options is discussed in the Model <ref-model> section.

Solver-specific notes follow below.

Artelys Knitro

Requires a license. The KNITRO.jl interface currently supports only nonlinear problems.

BARON

Requires a license. A trial version is available for small problem instances.

COIN-OR Clp and Cbc

Binaries for Clp and Cbc are provided on OS X and Windows (32- and 64-bit) by default. On Linux, they will be compiled from source (be sure to have a C++ compiler installed). Cbc supports "SOS" constraints but does not support MIP callbacks.

CPLEX

Requires a working installation of CPLEX with a license (free for faculty members and graduate teaching assistants). The interface requires using CPLEX as a shared library, which is unsupported by the CPLEX developers. Special installation steps are required on OS X. CPLEX supports MIP callbacks and "SOS" constraints.

ECOS

ECOS can be used by JuMP to solve LPs and SOCPs. ECOS does not support general quadratic objectives or constraints, only second-order conic constraints specified by using norm or the quadratic form x'x <= y^2.

FICO Xpress

Requires a working installation of Xpress with an active license (it is possible to get license for academic use, see FICO Academic Partner Program). Supports SOCP and "SOS" constraints. The interface is experimental, but it does pass all JuMP and MathProgBase tests. Callbacks are not yet supported.

Warning

If you are using 64-bit Xpress, you must use 64-bit Julia (and similarly with 32-bit Xpress).