User-defined distributions and layouts in chapel: philosophy and framework
Bradford L. Chamberlain, Steven J. Deitz, David Iten, Sung-Eun Choi · 2010
This paper introduces user-defined domain maps, a novel concept for implementing distributions and memory layouts for parallel data aggregates. Our domain maps implement parallel arrays for the Chapel programming language and are themselves implemented using standard Chapel features. Domain maps export a functional interface that our compiler targets as it maps from a user’s global-view algorithm down to the task-level operations required to implement the computation for multicore processors, GPUs, and distributed memory architectures. Unlike distributions in HPF and ZPL, Chapel’s domain maps are designed for generality and do not rely on hardcoding a fixed set of distributions into the compiler and runtime. The chief contributions of this paper are its description of our motivating principles and an overview of our framework. 1