Mapple: A Domain-Specific Language for Mapping Distributed Programs
Anjiang Wei, Rohan Yadav, Hang Song, Wonchan Lee, Ke Wang, Alex Aiken

TL;DR
Mapple is a high-level, declarative language that simplifies and optimizes the mapping of distributed programs, reducing code complexity and improving performance through novel primitives.
Contribution
Introduction of Mapple, a domain-specific language with transformation primitives for efficient, high-level mapping of distributed applications, integrated with Legion runtime.
Findings
Reduces mapper code size by 14x
Achieves up to 1.34x performance improvement
Decompose primitive outperforms existing heuristics by 1.83x
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Parallel Computing and Optimization Techniques · Cloud Computing and Resource Management
