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.

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:

ModuleNameLinks
HPC RuntimeDARMA/vt (Virtual Transport)Github
HPC SerializationDARMA/magistrate (Checkpointing and Serialization Library)Github, Docs
HPC Load Balancing Analysis FrameworkDARMA/LBAFGithub, Docs
HPC Serializer compiler analyzerDARMA/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.