Title :
Abstractions for portable, scalable parallel programming
Author :
Alverson, Gail A. ; Griswold, William G. ; Lin, Calvin ; Notkin, David ; Snyder, Lawrence
Author_Institution :
Tera Comput. Co., Seattle, WA, USA
fDate :
1/1/1998 12:00:00 AM
Abstract :
In parallel programming, the need to manage communication, load imbalance, and irregularities in the computation puts substantial demands on the programmer. Key properties of the architecture, such as the number of processors and the cost of communication, must be exploited to achieve good performance, but coding these properties directly into a program compromises the portability and flexibility of the code because significant changes are then needed to port or enhance the program. We describe a parallel programming model that supports the concise, independent description of key aspects of a parallel program-including data distribution, communication, and boundary conditions-without reference to machine idiosyncrasies. The independence of such components improves portability by allowing the components of a program to be tuned independently, and encourages reuse by supporting the composition of existing components. The isolation of architecture-sensitive aspects of a computation simplifies the task of porting programs to new platforms. Moreover, the model is effective in exploiting both data parallelism and functional parallelism. This paper provides programming examples, compares this work to related languages, and presents performance results
Keywords :
encoding; parallel programming; resource allocation; boundary conditions; data distribution; load imbalance; parallel programming; performance results; Aggregates; Computer architecture; Computer science; Concurrent computing; Costs; Helium; Load management; Parallel processing; Parallel programming; Programming profession;
Journal_Title :
Parallel and Distributed Systems, IEEE Transactions on