Abstractions for Portable, Scalable Parallel Programming

  • Authors:
  • Gail A. Alverson;William G. Griswold;Calvin Lin;David Notkin;Lawrence Snyder

  • Affiliations:
  • Tera Computer Co., East Seattle, WA;Univ. of California at San Diego, La Jolla;Univ. of Texas, Austin;Univ. of Washington, Seattle;Univ. of Washington, Seattle

  • Venue:
  • IEEE Transactions on Parallel and Distributed Systems
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

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.