DARMA
Efficient, distributed task-based programming made easy
Welcome to the DARMA documentation!
The DARMA project is positioned at the forefront of asynchronous many-task (AMT) research and development (R&D), providing production-quality dynamic runtime software for scientific HPC applications. DARMA provides powerful capabilities for dynamically scheduling tasks, incrementally (re-)balancing loads, data serialization & movement, and programming abstractions that yield performance portability. The DARMA team partners with key application/domain-specific teams to drive development, implement requisite functionality, and production-harden runtime software tailored to Sandia’s mission-critical applications.
DARMA has two organizations on Github: one for the public facing code and another for private/internal code, which has not be formally released.
- DARMA Public Organization: DARMA-tasking
- DARMA Private/Internal Organization: DARMA-tasking-internal
The DARMA teams develops an integrated toolkit of codes/repositories that work together to provide efficient, task-based distributed processing on large supercomputer architectures. The main public repositories are:
Module | Name | Links |
---|---|---|
HPC Runtime | DARMA/vt (Virtual Transport) | Github |
HPC Serialization | DARMA/magistrate (Checkpointing and Serialization Library) | Github, Docs |
HPC Load Balancing Analysis Framework | DARMA/LBAF | Github, Docs |
HPC Serializer compiler analyzer | DARMA/checkpoint-analyzer (Static verification of serializers) | Github |
Learn about DARMA/vt
DARMA/vt is the main runtime in the toolkit that provides tasking functionality. To learn more about vt, read the Introduction.