An Approach To Data Distributions in Chapel
- 1 August 2007
- journal article
- Published by SAGE Publications in The International Journal of High Performance Computing Applications
- Vol. 21 (3) , 313-335
- https://doi.org/10.1177/1094342007078451
Abstract
A key characteristic of today's high performance computing systems is a physically distributed memory, which makes the efficient management of locality essential for taking advantage of the performance enhancements offered by these architectures. Currently, the standard technique for programming such systems involves the extension of traditional sequential programming languages with explicit message-passing libraries, in a processor-centric model for programming and execution. It is commonly understood that this programming paradigm results in complex, brittle, and error-prone programs, because of the way in which algorithms and communication are inextricably interwoven. This paper describes a new approach to locality awareness, which focuses on data distributions in high-productivity languages. Data distributions provide an abstract specification of the partitioning of large-scale data collections across memory units, supporting coarse-grain parallel computation and locality of access at a high level of abstraction. Our design, which is based on a new programming language called Chapel, is motivated by the need to provide a high-productivity paradigm for the development of efficient and reusable parallel code. We present an object-oriented framework that allows the explicit specification of the mapping of elements in a collection to memory units, the control of the arrangement of elements within such units, the definition of sequential and parallel iteration over collections, and the formulation of specialized allocation policies as required for advanced applications. The result is a concise high-productivity programming model that separates algorithms from data representation and enables reuse of distributions, allocation policies, and data structures.Keywords
This publication has 11 references indexed in Scilit:
- Generalized multipartitioning of multi-dimensional arrays for parallelizing line-sweep computationsJournal of Parallel and Distributed Computing, 2003
- HPC++ and the HPC++Lib ToolkitPublished by Springer Nature ,2001
- A global communication optimization technique based on data-flow analysis and linear algebraACM Transactions on Programming Languages and Systems, 1999
- High Performance Fortran: History, status and futureParallel Computing, 1998
- Efficient Run-Time Support for Irregular Block-Structured ApplicationsJournal of Parallel and Distributed Computing, 1998
- Distributed pC++ Basic Ideas for an Object Parallel LanguageScientific Programming, 1993
- Programming in Vienna FortranScientific Programming, 1992
- An Optimizing C* Compiler for a Hypercube MulticomputerPublished by Elsevier ,1992
- PandorePublished by Association for Computing Machinery (ACM) ,1990
- Control structures in Illiac IV FortranCommunications of the ACM, 1973