Computing in Optimization using Julia

Miles Lubin
Seminar

Julia, a new high-level programming language for scientific computing, claims to bridge the performance gap between highly expressive languages such as Python and MATLAB and low-level languages such as C, C++, and Fortran by incorporating recent advances in language and compiler design (such as just-in-time compilation). We evaluate these claims in the context of algorithms and software fundamental to the field of numerical optimization. We provide extensive cross-language benchmarks of an implementation of the simplex method for linear programming as a test of Julia's performance on low-level numerical tasks. We present our Julia-based modeling language, JuMP, for algebraic modeling of linear and quadratic mixed-integer programming problems with benchmark comparisons to state-of-the-art modeling software such as AMPL and Pyomo. Finally, we discuss extensions to nonlinear modeling, including evaluation of derivatives.