JuMP is a domain-specific modeling language for mathematical programming embedded in Julia. It currently supports a number of open-source and commercial solvers (COIN Clp, COIN Cbc, GNU GLPK, Gurobi, MOSEK, CPLEX) via a generic solver-independent interface.
One the best features of JuMP is its speed - benchmarking has shown that it can create problems at similar speeds to special-purpose modeling languages such as AMPL while maintaining the expressiveness of a generic high-level programming language. JuMP communicates with solvers in-memory, avoiding the need to write intermediary files and enabling access to advanced features such as efficient LP re-solves and callbacks for mixed-integer programming.
Our documentation includes an installation guide, quick-start guide, and reference manual.
Latest Release: 0.3.2 (via Pkg.add)
- documentation
- examples
- Testing status:
Development version:
- documentation
- examples
- Testing status:
- Changes: see NEWS
JuMP was formerly known as MathProg.jl
JuMP can be installed through the Julia package manager (version 0.2 required)
julia> Pkg.add("JuMP")For full installation instructions, including how to install solvers, see the documentation linked above.
Mathematical programming encompasses a large variety of problem classes. We list below what is currently supported. See the documentation for more information.
Objective types
- Linear
- Convex Quadratic
Constraint types
- Linear
- Convex Quadratic
- Second-order Conic
Variable types
- Continuous
- Integer-valued
Please report any issues via the Github issue tracker. All types of issues are welcome and encouraged; this includes bug reports, documentation typos, "how do I do this?" questions, feature requests, etc.

