JuliaCon 2020 (times are in UTC)

Convex.jl: where are we and where do we want to go?
07-29, 16:30–16:40 (UTC), Green Track

We will show off some new features in Convex.jl, solve a few example problems, and discuss development plans for the future.


Convex.jl is a modelling language for solving convex optimization problems. This is a class of problem that, when modelled correctly, can be efficiently and accurately solved to global optimality. Convex.jl provides a simple and convenient modelling language that transforms user-entered problems into a structured form which, via the intermediary layer MathOptInterface.jl, is passed to solvers which can then exploit the structure to efficiently solve the problem.

We will discuss Convex.jl’s recent update from using the deprecated MathProgBase as an intermediary layer to instead using the actively developed MathOptInterface (which also powers JuMP). Among other things, this enables Convex.jl to formulate problems specified using generic numeric types and send problems to high-precision solvers in order to accurately calculate optimal values of optimization problems to many decimal places. We will also see how to build domain-specific abstractions on top of Convex.jl to provide convenient interfaces for formulating problems in field-specific contexts by using custom variable types and a new feature that allows variables to carry around their own constraints.

We will also see some new tooling: a library of end-to-end tests for MathOptInterface-compatible optimization solvers, and infrastructure to run the tests in parallel on GitHub Actions and display the results on a convenient webpage.

Lastly, we will discuss plans for Convex.jl’s next steps, to make it more efficient and even easier to extend, and invite the audience to help build that future.

PhD student studying quantum information theory at Cambridge University

This speaker also appears in: