(314d) Plasmo: Platform for Scalable Modeling and Optimization

Authors: 
Cao, Y., University of Wisconsin-Madison
Jalving, J., University of Wisconsin Madison
Zavala, V. M., University of Wisconsin-Madison
PLASMO (Platform for Scalable Modeling and Optimization) is a Julia-based open-source software platform that facilities the construction, solution, instantiation, and management of large-scale optimization problems on high-performance computers.

PLASMO is comprised of four core components: C1) Workflows: Enable fast and consistent instantiation and management of concurrent simulations generated from pre-specified model templates. C2) Modeling: Enables scalable and compact representations of applications by interfacing different modeling components. C3) Data and Analysis: Provides scalable and extensible templates to specify and communicate large-scale input model data from multiple sources in distributed environments. C4) Solver: Provides scalable and extensible solution templates that are compatible with the applications.

This presentation will focus on the modeling component of PLASMO. We discuss how to use the platform to target problems in multi-scale/hierarchical networks, integrated planning/scheduling/control, and stochastic programming formulations. For instance, PLASMO can be used to express hierarchical networks as trees where each node represents a component or a network itself. Each node has its own model, objective function, and connectivity of its children. In this way, PLASMO allows highly compact and scalable object-oriented expressions of the problem. PLASMO is already interfaced with serial solvers like IPOPT and parallel solvers like PIPS-NLP and DSP. When PIPS-NLP is used, PLASMO enables not only parallel model instantiation but also parallel evaluation of the Hessian, Jacobian, and objective/constraint functions.