Algorithm 945: Modred-a parallelized model reduction library

Brandt A. Belson, Jonathan H. Tu, Clarence Worth Rowley

Research output: Contribution to journalArticlepeer-review

48 Scopus citations


We describe a new parallelized Python library for model reduction, modal analysis, and system identification of large systems and datasets. Our library, called modred, handles a wide range of problems and any data format. The modred library contains implementations of the Proper Orthogonal Decomposition (POD), balanced POD (BPOD) Petrov-Galerkin projection, and a more efficient variant of the Dynamic Mode Decomposition (DMD). The library contains two implementations of these algorithms, each with its own advantages. One is for smaller and simpler datasets, requires minimal knowledge to use, and follows a common matrix-based formulation. The second, for larger and more complicated datasets, preserves the abstraction of vectors as elements of a vector space and, as a result, allows the library to work with arbitrary data formats and eases distributed memory parallelization. We also include implementations of the Eigensystem Realization Algorithm (ERA), and Observer/Kalman Filter Identification (OKID). These methods are typically not computationally demanding and are not parallelized. The library is designed to be easy to use, with an object-oriented design, and includes comprehensive automated tests. In almost all cases, parallelization is done internally so that scripts that use the parallelized classes can be run in serial or in parallel without any modifications.

Original languageEnglish (US)
Article number30
JournalACM Transactions on Mathematical Software
Issue number4
StatePublished - Jun 2014

All Science Journal Classification (ASJC) codes

  • Software
  • Applied Mathematics


  • Balanced Proper Orthogonal Decomposition
  • Dynamic Mode Decomposition
  • Eigensystem Realization Algorithm
  • Koopman modes
  • Model reduction
  • Observer/Kalman Filter Identification
  • Proper Orthogonal Decomposition
  • Python
  • System identification


Dive into the research topics of 'Algorithm 945: Modred-a parallelized model reduction library'. Together they form a unique fingerprint.

Cite this