Overview

Parapint is a package for parallel solution of dynamic optimization problems. Parapint currently includes a Schur-Complement decomposition algorithm based on [Word2014]. Parapint utilizes Pynumero BlockVector and BlockMatrix classes (which in turn utilize Numpy arrays and Scipy sparse matrices) for efficient block-based linear algebra operations such as block-matrix, block-vector dot products. These classes enable convenient construction of block-structured KKT systems. Parapint also utilizes Pynumero interfaces to efficient numerical routines in C, C++, and Fortran, including the AMPL Solver Library (ASL), MUMPS, and the MA27 routines from the Harwell Subroutine Library (HSL).

Parapint is designed with three primary modules:

  • The algorithms. The algorithms drive the solution process and perform high level operations such as the fraction-to-the boundary rule or inertia correction for the interior point algorithm. The interior point algorithm is designed to work with any BaseInteriorPointInterface and any LinearSolverInterface as long as the interface and the linear solver are compatible.

  • The interfaces. All interfaces should inherit from BaseInteriorPointInterface and implement all abstract methods. These are the methods required by the interior point algorithm. The interfaces are designed to work with a subset of linear solvers. The table below outlines which interfaces work with which linear solvers.

  • The linear solvers. All linear solvers should inherit from LinearSolverInterface and implement all abstract methods. These are the methods required by the interior point algorithm. The linear solvers are designed to work with certain interface classes. The table below outlines which linear solvers work with which interfaces.

Compatible linear solvers and interfaces

Linear Solver

Compatible Interface Class

InteriorPointMA27Interface

InteriorPointInterface

MumpsInterface

InteriorPointInterface

ScipyInterface

InteriorPointInterface

SchurComplementLinearSolver

DynamicSchurComplementInteriorPointInterface

MPISchurComplementLinearSolver

MPIDynamicSchurComplementInteriorPointInterface

Word2014

Word, D. P., Kang, J., Akesson, J., & Laird, C. D. (2014). Efficient parallel solution of large-scale nonlinear dynamic optimization problems. Computational Optimization and Applications, 59(3), 667-688.