Mapple: A Domain-Specific Language for Mapping Distributed Programs
Fuente:
arXiv
Enregistré dans:
| Auteurs principaux: | , , , , , |
|---|---|
| Format: | Preprint |
| Publié: |
2025
|
| Sujets: | |
| Accès en ligne: | |
| Tags: |
Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
|
| _version_ | 1866915617390460928 |
|---|---|
| author | Wei, Anjiang Yadav, Rohan Song, Hang Lee, Wonchan Wang, Ke Aiken, Alex |
| author_facet | Wei, Anjiang Yadav, Rohan Song, Hang Lee, Wonchan Wang, Ke Aiken, Alex |
| contents | Optimizing parallel programs for distributed systems is a complex task, often requiring significant code modifications. Task-based programming systems improve modularity by separating performance decisions from application logic, but their mapping interfaces are low-level. We introduce Mapple, a high-level, declarative programming interface for mapping distributed applications. Mapple provides transformation primitives to resolve dimensionality mismatches between task and processor spaces, including a key primitive, decompose, that helps minimize communication volume. We implement Mapple on top of the Legion runtime by translating Mapple mappers into its low-level C++ interface. Across nine applications, including six matrix multiplication algorithms and three scientific computing workloads, Mapple reduces mapper code size by 14x and enables performance improvements of up to 1.34x over expert-written C++ mappers. In addition, the decompose primitive achieves up to 1.83x improvement over existing dimensionality-resolution heuristics. |
| format | Preprint |
| id |
arxiv_https___arxiv_org_abs_2507_17087 |
| institution | arXiv |
| publishDate | 2025 |
| record_format | arxiv |
| spellingShingle | Mapple: A Domain-Specific Language for Mapping Distributed Programs Wei, Anjiang Yadav, Rohan Song, Hang Lee, Wonchan Wang, Ke Aiken, Alex Distributed, Parallel, and Cluster Computing Programming Languages Optimizing parallel programs for distributed systems is a complex task, often requiring significant code modifications. Task-based programming systems improve modularity by separating performance decisions from application logic, but their mapping interfaces are low-level. We introduce Mapple, a high-level, declarative programming interface for mapping distributed applications. Mapple provides transformation primitives to resolve dimensionality mismatches between task and processor spaces, including a key primitive, decompose, that helps minimize communication volume. We implement Mapple on top of the Legion runtime by translating Mapple mappers into its low-level C++ interface. Across nine applications, including six matrix multiplication algorithms and three scientific computing workloads, Mapple reduces mapper code size by 14x and enables performance improvements of up to 1.34x over expert-written C++ mappers. In addition, the decompose primitive achieves up to 1.83x improvement over existing dimensionality-resolution heuristics. |
| title | Mapple: A Domain-Specific Language for Mapping Distributed Programs |
| topic | Distributed, Parallel, and Cluster Computing Programming Languages |
| url | https://arxiv.org/abs/2507.17087 |