JuliaCon 2022 (Times are UTC)

Interior-point conic optimization with Clarabel.jl
07-27, 13:30–14:00 (UTC), JuMP

The talk will introduce Clarabel.jl, a conic convex optimization solver in pure Julia. Clarabel.jl uses an interior point technique with a novel homogeneous embedding and can solve LPs, QPs, SOCPs, SDPs or exponential cone programs. The talk will highlight the solver's performance advantages relative to competing solvers, discuss algorithmic and software design ideas drawn from existing solvers, and highlight extensibility features leveraging Julia's multiple dispatch system.

The talk will introduce Clarabel.jl, a new package for conic convex optimization implemented in pure Julia. The package is based on an interior point optimization method and can solve optimization problems in the form of linear and quadratic programs (LPs and QPs), second-order cone programs (SOCPs), semidefinite programs (SDPs) and constraints on the exponential cone.

The package implements a novel homogeneous embedding technique that offers substantially faster solve times relative to existing open-source and commercial solvers for some problem types. This improvement is due to both a reduction in the number of required interior point iterations as well as an improvement in both the size and sparsity of the linear system that must be solved at each iteration. The talk will describe details of this embedding and show performance results with respect to solvers based on the standard homogeneous self-dual embedding, including ECOS, Hypatia and MOSEK.

Our implementation of Clarabel.jl adopts design ideas from several existing solver packages. Based on our group’s prior experience implementing first-order optimization techniques in the ADMM-based solver COSMO.jl, Clarabel.jl adopts a modular implementation for convex cones that is easily extensible to new types. The solver organises its core internal data types following the design of the C++ QP solver OOQP, allowing for future extensions of the solver to exploit optimization problems with special internal structure, e.g. optimal control or support vector machine problems. Finally, the package works with generic types throughout, allowing for simple extension to abstract matrix or vector representations or use with arbitrary precision floating point types. The talk will describe these features and their implementation through Julia’s multiple dispatch system.

Clarabel.jl provides a simple native interface for solving cone programs in a standard format. The package also fully supports Julia's MathOptInterface package, and can therefore be used via both JuMP and Convex.jl.

The package will be available as an open-source package via Github under the Apache 2.0 license. An initial public release is planned for June 2022, but full documentation and examples are already available at:


Paul Goulart joined the University of Oxford in 2014 as an Associate Professor in Engineering Science and a Tutorial Fellow in Engineering Science. He received his SB and MSc degrees in Aeronautics and Astronautics from the Massachusetts Institute of Technology (MIT). Following his undergraduate studies he was a software developer in the flight operations centre for the Chandra X-Ray Observatory at the Harvard-Smithsonian Centre for Astrophysics, and later an engineer in the Autonomous Systems research group at the Charles Stark Draper Laboratory.

In 2003 he was selected as a Gates Scholar at the University of Cambridge, where he received a PhD in Control Engineering in 2007. From 2007 to 2011 he was a Lecturer in control systems in the Department of Aeronautics at Imperial College London, and from 2011 to 2014 a Senior Researcher in the Automatic Control Laboratory at ETH Zurich. He is currently a member of the Control Group in the department of Engineering Science.

His research interests are in high speed optimisation and control for embedded systems, data-driven and robust optimisation, and machine learning.