Table of Contents
Fetching ...

A Graph-Based, Distributed Memory, Modeling Abstraction for Optimization

David L. Cole, Jordan Jalving, Jonah Langlieb, Jesse D. Jenkins

TL;DR

The paper introduces RemoteOptiGraph, a graph-based abstraction that extends OptiGraph to distributed memory settings, enabling native distributed modeling and seamless application of meta-algorithms like Benders decomposition. Implemented in Plasmo.jl, RemoteOptiGraph preserves a unified modeling interface while coordinating subgraphs across multiple workers via InterWorkerEdges, and it uses remote and proxy references to minimize serialization overhead. A large-scale case study on power-system capacity expansion demonstrates that remote graph decomposition can achieve substantial speedups (e.g., 7.5×) over monolithic, shared-memory formulations. The work highlights a general framework for distributed optimization modeling that can underlie future algorithmic developments (e.g., ADMM, warm-starting cuts) and facilitate scalable, architecture-agnostic deployment in HPC and cloud environments.

Abstract

We present a general, flexible modeling abstraction for building and working with distributed optimization problems called a RemoteOptiGraph. This abstraction extends the OptiGraph model in Plasmo$.$jl, where optimization problems are represented as hypergraphs with nodes that define modular subproblems (variables, constraints, and objectives) and edges that encode algebraic linking constraints between nodes. The RemoteOptiGraph allows OptiGraphs to be utilized in distributed memory environments through InterWorkerEdges, which manage linking constraints that span workers. This abstraction offers a unified approach for modeling optimization problems on distributed memory systems (avoiding bespoke modeling approaches), and provides a basis for developing general-purpose meta-algorithms that can exploit distributed memory structure such as Benders or Lagrangian decompositions. We implement this abstraction in the open-source package, Plasmo$.$jl and we illustrate how it can be used by solving a mixed integer capacity expansion model for the western United States containing over 12 million variables and constraints. The RemoteOptiGraph abstraction together with Benders decomposition performs 7.5 times faster than solving the same problem without decomposition.

A Graph-Based, Distributed Memory, Modeling Abstraction for Optimization

TL;DR

The paper introduces RemoteOptiGraph, a graph-based abstraction that extends OptiGraph to distributed memory settings, enabling native distributed modeling and seamless application of meta-algorithms like Benders decomposition. Implemented in Plasmo.jl, RemoteOptiGraph preserves a unified modeling interface while coordinating subgraphs across multiple workers via InterWorkerEdges, and it uses remote and proxy references to minimize serialization overhead. A large-scale case study on power-system capacity expansion demonstrates that remote graph decomposition can achieve substantial speedups (e.g., 7.5×) over monolithic, shared-memory formulations. The work highlights a general framework for distributed optimization modeling that can underlie future algorithmic developments (e.g., ADMM, warm-starting cuts) and facilitate scalable, architecture-agnostic deployment in HPC and cloud environments.

Abstract

We present a general, flexible modeling abstraction for building and working with distributed optimization problems called a RemoteOptiGraph. This abstraction extends the OptiGraph model in Plasmojl, where optimization problems are represented as hypergraphs with nodes that define modular subproblems (variables, constraints, and objectives) and edges that encode algebraic linking constraints between nodes. The RemoteOptiGraph allows OptiGraphs to be utilized in distributed memory environments through InterWorkerEdges, which manage linking constraints that span workers. This abstraction offers a unified approach for modeling optimization problems on distributed memory systems (avoiding bespoke modeling approaches), and provides a basis for developing general-purpose meta-algorithms that can exploit distributed memory structure such as Benders or Lagrangian decompositions. We implement this abstraction in the open-source package, Plasmojl and we illustrate how it can be used by solving a mixed integer capacity expansion model for the western United States containing over 12 million variables and constraints. The RemoteOptiGraph abstraction together with Benders decomposition performs 7.5 times faster than solving the same problem without decomposition.

Paper Structure

This paper contains 10 sections, 7 equations, 7 figures.

Figures (7)

  • Figure 1: A visualization of the OptiGraph. Figure a shows the general abstraction with variable sets $x_1$, $x_2$, and $x_3$ partitioned into nodes $n_1$, $n_2$, and $n_3$, respectively, with edges containing linking constraints between these variable sets. Figure b shows an example of the nested structures that can be supported within OptiGraphs.
  • Figure 2: An example of the RemoteOptiGraph abstraction, where an overall RemoteOptiGraph, $\mathcal{RG}(\mathcal{G}, \{ \mathcal{RG}_1, \mathcal{RG}_2\}, \mathcal{E}_\mathcal{RG}, \textrm{w2})$ is stored on the main processor with its OptiGraph, $\mathcal{G}$ stored on worker 2. Two remote subgraphs, $\mathcal{RG}_1$ and $\mathcal{RG}_2$ also have OptiGraphs, $\mathcal{G}_1$ and $\mathcal{G}_2$, stored on workers 3 and 4, respectively. Only $\mathcal{RG}$ contains a set of InterWorkerEdges, $\mathcal{E}_\mathcal{RG}$.
  • Figure 3: An example showing communication between the main and remote workers via proxy objects. When set_lower_bound is called, the user-facing, remote reference objects (left) are converted internally to proxy objects, passed to the remote workers, and used to retrieve their corresponding local objects. Here the DArray is a lightweight "pointer" for the OptiGraph stored remotely.
  • Figure 4: A visual example of building a RemoteOptiGraph in Plamso.jl.
  • Figure 5: A visualization of the graph created by Code Snippet \ref{['code:plasmo_example']}, with a RemoteOptiGraph named graph and two remote subgraphs named planning_graph and operation_graph.
  • ...and 2 more figures