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.
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