Reusable and Extensible High Level Data Distributions
Abstract
This paper presents a reusable design of a data distribution framework for data parallel high performance applications. Distributions are a means to express locality in systems composed of large numbers of processor and memory components connected by a network. Since distributions have a great effect on the performance of applications, it is important that the distribution strategy is flexible, so its behavior can change depending on the needs of the application. At the same time, high productivity concerns require that the user is shielded from error-prone, tedious details such as communication and synchronization. We propose an approach to distributions that enables a user to refine a distribution type and adjust it to optimize the performance of thee application. Additionally, the low-level communication and synchronization details are concealed from a programmer, resulting in increased productivity. To emphasize the generality of our distribution machinery, we present its abstract design in the form of a design pattern, which is independent of a concrete implementation. To illustrate the applicability of our distribution framework design, we outline the implementation of data distributions in terms of the Chapel high productivity programming language.
Files
Name | Size | Download all |
---|---|---|
md5:d07bafc0b5f393b3eb8abe33d3fd8145
|
69.3 kB | Preview Download |
Additional details
- Eprint ID
- 28211
- Resolver ID
- CaltechCACR:2005.103
- Created
-
2005-08-22Created from EPrint's datestamp field
- Updated
-
2019-10-03Created from EPrint's last_modified field
- Caltech groups
- Center for Advanced Computing Research