Using Generative Design Patterns to Generate Parallel Code for a Distributed Memory Environment (2003)
Cached
Download Links
- [www.cs.ualberta.ca]
- [plg.uwaterloo.ca]
- [www.cs.ualberta.ca]
- [www.cs.uiuc.edu]
- [www.cs.ualberta.ca]
- DBLP
Other Repositories/Bibliography
| Citations: | 29 - 11 self |
BibTeX
@INPROCEEDINGS{Tan03usinggenerative,
author = {Kai Tan and Duane Szafron and Jonathan Schaeffer and John Anvik and Steve Macdonald},
title = {Using Generative Design Patterns to Generate Parallel Code for a Distributed Memory Environment},
booktitle = {},
year = {2003},
pages = {203--215}
}
Years of Citing Articles
OpenURL
Abstract
A design pattern is a mechanism for encapsulating the knowledge of experienced designers into a re-usable artifact. Parallel design patterns reflect commonly occurring parallel communication and synchronization structures. Our tools, CO 2 P 3 S (Correct Object-Oriented Pattern-based Parallel Programming System) and MetaCO 2 P 3 S, use generative design patterns. A programmer selects the parallel design patterns that are appropriate for an application, and then adapts the patterns for that specific application by selecting from a small set of code-configuration options. CO 2 P 3 S then generates a custom framework for the application that includes all of the structural code necessary for the application to run in parallel. The programmer is only required to write simple code that launches the application and to fill in some applicationspecific sequential hook routines. We use generative design patterns to take an application specification (parallel design patterns + sequential user code) and use it to generate parallel application code that achieves good performance in shared memory and distributed memory environments. Although our implementations are for Java, the approach we describe is tool and language independent. This paper describes generalizing CO 2 P 3 S to generate distributed-memory parallel solutions.







