Authoring User-Defined Domain Maps in Chapel ∗

One of the most promising features of the Chapel parallel programming language from Cray Inc. is its support for user-defined domain maps, which give advanced users control over how arrays are implemented. In this way, parallel programming experts can focus on details such as how array data and loop iterations are mapped to a target architecture’s nodes, while end-users can benefit from their efforts when using Chapel’s high-level global array operations. Chapel’s domain maps also support control over finer-grained decisions like what memory layout to use when storing an array’s elements on each node. In this paper, we provide an introduction to Chapel’s user-defined domain maps and summarize the framework for specifying them.

[1]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977 .

[2]  Guy L. Steele,et al.  Compiling Fortran 8x array features for the connection machine computer system , 1988, PPoPP 1988.

[3]  Ken Kennedy,et al.  Fortran D Language Specification , 1990 .

[4]  Allan Porterfield,et al.  The Tera computer system , 1990 .

[5]  Charles Koelbel,et al.  Programming data parallel algorithms on distributed memory using Kali , 1991, ICS '91.

[6]  Peter Brezany,et al.  Vienna Fortran - A Language Specification. Version 1.1 , 1992 .

[7]  Barbara M. Chapman,et al.  Programming in Vienna Fortran , 1992, Sci. Program..

[8]  Guy L. Steele,et al.  The High Performance Fortran Handbook , 1993 .

[9]  Bradford L. Chamberlain,et al.  A Compiler Abstraction for Machine Independent Parallel Communication Generation , 1997, LCPC.

[10]  Barbara M. Chapman,et al.  Vienna-Fortran/HPF Extensions for Sparse and Irregular Problems and Their Compilation , 1997, IEEE Trans. Parallel Distributed Syst..

[11]  Lawrence Snyder,et al.  Quantifying the effects of communication optimizations , 1997, Proceedings of the 1997 International Conference on Parallel Processing (Cat. No.97TB100162).

[12]  Katherine A. Yelick,et al.  Titanium: A High-performance Java Dialect , 1998, Concurr. Pract. Exp..

[13]  Robert W. Numrich,et al.  Co-array Fortran for parallel programming , 1998, FORF.

[14]  Vipin Kumar,et al.  A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs , 1998, SIAM J. Sci. Comput..

[15]  Jeremy D. Frens,et al.  Language support for Morton-order matrices , 2001, PPoPP '01.

[16]  Bradford L. Chamberlain The design and implementation of a region-based parallel language , 2001 .

[17]  Steven J. Deitz,et al.  The design and implementation of a parallel array operator for the arbitrary remapping of data , 2003, PPoPP '03.

[18]  Katherine Yelick,et al.  UPC: Distributed Shared-Memory Programming , 2003 .

[19]  Robert J. Fowler,et al.  Generalized multipartitioning of multi-dimensional arrays for parallelizing line-sweep computations , 2003, J. Parallel Distributed Comput..

[20]  Tamara G. Kolda,et al.  An overview of the Trilinos project , 2005, TOMS.

[21]  Robert W. Numrich A Parallel Numerical Library for Co-array Fortran , 2005, PPAM.

[22]  Steven J. Deitz,et al.  High-level programming language abstractions for advanced and dynamic parallel computations , 2005 .

[23]  David A. Padua,et al.  Programming for parallelism and locality with hierarchically tiled arrays , 2006, PPoPP '06.

[24]  Bradford L. Chamberlain,et al.  Parallel Programmability and the Chapel Language , 2007, Int. J. High Perform. Comput. Appl..

[25]  Lawrence Snyder,et al.  The design and development of ZPL , 2007, HOPL.

[26]  B. Chamberlain Multiresolution Languages for Portable yet Efficient Parallel Programming , 2009 .

[27]  Steven J. Deitz,et al.  User-defined distributions and layouts in chapel: philosophy and framework , 2010 .

[28]  Bradford L. Chamberlain,et al.  Using the High Productivity Language Chapel to Target GPGPU Architectures , 2011 .