A New Architecture for Optimization Modeling Frameworks

M. Wytock, S. Diamond, F. Heide, and S. Boyd

6th Workshop on Python for High-Performance and Scientific Computing, pages 36–44, November 2016.

We propose a new architecture for optimization modeling frameworks in which solvers are expressed as computation graphs in a framework like TensorFlow rather than as standalone programs built on a low-level linear algebra interface. Our new architecture makes it easy for modeling frameworks to support high performance computational platforms like GPUs and distributed clusters, as well as to generate solvers specialized to individual problems. Our approach is particularly well adapted to firstorder and indirect optimization algorithms. We introduce cvxflow, an open-source convex optimization modeling framework in Python based on the ideas in this paper, and show that it outperforms the state of the art.