.. _dynRes software stack: ######################### The DynRes Software Stack ######################### The DynRes Software Stack supports dynamic resource management based on the :ref:`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. .. image:: 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