EconPapers    
Economics at your fingertips  
 

Scalable Parallel Nonlinear Optimization with PyNumero and Parapint

Jose S. Rodriguez (), Robert B. Parker (), Carl D. Laird (), Bethany L. Nicholson (), John D. Siirola () and Michael L. Bynum ()
Additional contact information
Jose S. Rodriguez: Davidson School of Chemical Engineering, Purdue University, West Lafayette, Indiana 47907
Robert B. Parker: Center for Computing Research, Sandia National Laboratories, Albuquerque, New Mexico 87123; Carnegie Mellon University, Department of Chemical Engineering, Pittsburgh, Pennsylvania 15213
Carl D. Laird: Carnegie Mellon University, Department of Chemical Engineering, Pittsburgh, Pennsylvania 15213
Bethany L. Nicholson: Center for Computing Research, Sandia National Laboratories, Albuquerque, New Mexico 87123
John D. Siirola: Center for Computing Research, Sandia National Laboratories, Albuquerque, New Mexico 87123
Michael L. Bynum: Center for Computing Research, Sandia National Laboratories, Albuquerque, New Mexico 87123

INFORMS Journal on Computing, 2023, vol. 35, issue 2, 509-517

Abstract: We describe PyNumero, an open-source, object-oriented programming framework in Python that supports rapid development of performant parallel algorithms for structured nonlinear programming problems (NLP’s) using the Message Passing Interface (MPI). PyNumero provides three fundamental building blocks for developing NLP algorithms: a fast interface for calculating first and second derivatives with the AMPL Solver Library (ASL), a number of interfaces to efficient linear solvers, and block-structured vectors and matrices based on NumPy, SciPy, and MPI that support distributed parallel storage and computation. PyNumero’s design enables efficient, parallel algorithm development using high-level Python syntax while keeping expensive numerical calculations in fast, compiled implementations based on languages like C and Fortran. To demonstrate the utility of PyNumero, we also present Parapint, a Python package built on PyNumero for parallel solution of dynamic optimization problems. Parapint includes a parallel interior-point solver based on Schur-Complement decomposition. We illustrate the effectiveness of PyNumero for developing parallel algorithms with both code examples and scalability analyses for parallel matrix-vector dot products, parallel solution of structured systems of linear equations using Schur-Complement decomposition, and the parallel solution of a two-dimensional PDE optimal control problem. Our numerical results show nearly perfect scaling to more than 1,000 cores for large matrix-vector dot products and structured linear systems. Moreover, we obtain more than 354 times speedup for the optimal control example.

Keywords: nonlinear programming; open-source optimization software; decomposition algorithms; parallel computing; Python (search for similar items in EconPapers)
Date: 2023
References: View references in EconPapers View complete reference list from CitEc
Citations:

Downloads: (external link)
http://dx.doi.org/10.1287/ijoc.2023.1272 (application/pdf)

Related works:
This item may be available elsewhere in EconPapers: Search for items with the same title.

Export reference: BibTeX RIS (EndNote, ProCite, RefMan) HTML/Text

Persistent link: https://EconPapers.repec.org/RePEc:inm:orijoc:v:35:y:2023:i:2:p:509-517

Access Statistics for this article

More articles in INFORMS Journal on Computing from INFORMS Contact information at EDIRC.
Bibliographic data for series maintained by Chris Asher ().

 
Page updated 2025-03-19
Handle: RePEc:inm:orijoc:v:35:y:2023:i:2:p:509-517