top of page


lightning Speed

Gravity is meant to beat all other modeling languages, period.

The ARPA-e Grid Optimization Competition

Gravity was recently used in the ARPA-e Grid Optimization Competition.

The GravityX team was ranked 1st across all divisions of the Competition Challenge 2.

Check ARPA-E's blog post here

AC Optimal Power Flow

The Alternating Current Optimal Power Flow (ACOPF) Problem is a fundamental building block in Power Systems Optimization.
The problem admits two nonconvex nonlinear formulations, one known as the polar formulation (featuring trigonometric functions) and one known as the rectangular formulation (quadratically-constrained).
A comprehensive description of the two formulations can be found here.
The first figure below is a performance profile illustrating percentage of instances solved as a function of time.
The figure compares Gravity's Opomo, MatPower, PowerModels, and GridOpt on all standard instances found in the PGLIB (v21.07) benchmark library. The recorded time corresponds to the wall-clock time (excluding any compile time).

Screen Shot 2022-03-21 at 2.46.05 PM.png
Performance Profile: Solver Run Time
Ipopt 3.12 with HSL ma27

The figure below compares model build time between Gravity and JuMP.

Improvements up to one order of magnitude can be seen there.

Model build time
Learning of Ising Models

Learning the structure and the parameters of an Ising model is a typical Machine Learning problem where data input quickly becomes problematic (the learning relies on binary samples input).
Matrices with 92 million non-zero entries appear in the biggest instances. A comprehensive formulation of the problem can be found here and here.
The figure below shows that both JuMP and AMPL's NL interface crash after a certain threshold due to memory issues. Gravity is able to scale up on all tested instances. Since the problem has a natural parallelization procedure, a parallel implementation in Gravity was also tested on this problem. The figure also compares Gravity running with 12 threads, showing gains up to one order of magnitude.

Source code implementation can be downloaded here.

Performance Profile: Solver Run Time

For more details, click here

bottom of page