The DynRes Software Stack

The DynRes Software Stack supports dynamic resource management based on the Dynamic Processes With PSets (DPP) design principles.

Software Layers

The following figure gives an overview of the different software layers of the DynRes Software Stack.

_images/stack_layers.png

Supported Software

This section lists all software projects currently intgrated in the DynRes Software Stack.

Package Manager

  • DynPkgs: A package manager to install software of the DynRes Software Stack

Applications/Examples

  • Benchmarks: An environment for creating, running and analyzing Dynamic Resource Management experiments and benchmarks.

  • Charm++ Examples: Example Application to demonstrate (Dyn)Charm++ integration.

  • DMR Examples: Iterative kernels Jacobi, Laplace and Conjugate Gradient demonstrating the DMR integration with DPP

  • DynPetsc Examples: Linear, Non-linear and timestepper examples demonstrating DynPetSc integration

  • DynRM Examples: Synthetic Application to demonstrate DynRM and DynPSets functionalities

  • DynTaskGraphs Examples: Examples of using the DynTaskGraphs Library

  • DynXBraid Examples: 1D heat equation examples demonstrating dynamic resources in XBraid

  • LibPFASST Examples: Example application demonstrating dynamic resources in LibPFASST

  • MPI Tests: Simple test applications to test the DPP MPI Sessions extensions

  • ML Examples: Example Application demonstrating dynamic resources for Machine Learning Workloads

  • MPDATA3D: 3D semi-Lagrangian multiscale fluid solver using DynPSets for dynamic resources

  • DynP4est Examples: Example Application demonstrating dynamic resources with Adaptive Mesh Refinement using DynP4est

  • PSet Monitoring Examples: Examples Application demonstrating PSet-based monitoring capabilities in PRRTE and OpenPMIx

Libraries

  • DMR: A library designed to offer the global advantages of process malleability while providing a minimalist MPI-like syntax.

  • DynPetsc: Adaptive version of PetSc - A parallel numerical software library

  • DynPSets: A library to support dynamic MPI reconfiguration - inspired by DMR.

  • DTG: A library for implementing and running resource-dynamic MPI-based task graphs.

  • DynXBraid: Adaptive version of XBraid - a multigrid-based parallel-in-time library

  • DynLibPFASST: Adaptive version of LibPFASST - a parallel-in-time library based on the Parallel Full Approximation Scheme in Space and Time (PFASST) algorithm

  • DynP4est: Adaptive version of P4est - an Adaptive Mesh Refinement Framework

Programming Models and Runtime Systems

  • DynCharm++: Adptive version of Charm++ - a C++-based parallel programming system, founded on the migratable-objects programming model, and supported by a novel and powerful adaptive runtime system.

  • Dynamic Open-MPI: Adaptive version of Open-MPI - an implementation of the MPI standard. Supportes Dynamic Resource Extensions of the MPI Sessions interface

  • Dynamic OpenPMIx: Adaptive version of OpenPMIx - an implementation of the PMIx Standard

  • Dynamic PRRTE: Adaptive version of PRRTE - the PMIx Reference Runtime environment

  • Dynamic MPI4py: Extends the Python MPI Bindings to the dynamic resources extesnions of the MPI Sessions Model

Resource Manager

  • DynRM: A modular, Python-based resource manager supporting Dynamic Resource Management based on DPP