JuMP — Julia for Mathematical Programming¶
JuMP is a domainspecific modeling language for mathematical programming embedded in Julia. It currently supports a number of opensource and commercial solvers (Clp, Cbc, GLPK, Gurobi, MOSEK, and CPLEX) via a generic solverindependent interface provided by the MathProgBase package.
One the best features of JuMP is its speed  benchmarking has shown that it can create problems at similar speeds to specialpurpose modeling languages such as AMPL while maintaining the expressiveness of a generic highlevel programming language. JuMP communicates with solvers inmemory, avoiding the need to write intermediary files and enabling access to advanced features such as efficient LP resolves and callbacks for mixedinteger programming.
JuMP has recently enabled support for nonlinear programming for functions that can be expressed in closed algebraic form. JuMP computes exact sparse secondorder derivatives needed by efficient interiorpoint solvers.
If you are familiar with Julia you can get started quickly by using the package manager to install JuMP:
julia> Pkg.add("JuMP")
And a solver, e.g.:
julia> Pkg.add("Clp") # Will install Cbc as well
Then read the Quick Start Guide and/or see a Simple Example. The subsequent sections detail the complete functionality of JuMP.
Contents¶
Citing JuMP¶
Further discussion of the design of JuMP in the context of existing domainspecific languages for mathematical programming, together with extensive benchmarks, is given in [1]. If you find JuMP useful in your work, we request that you cite this paper.
[1] 
