Abstractions for portable, scalable parallel programming

By: Contributor(s): Material type: ArticleArticleDescription: Datos electrónicos (1 archivo : 541 KB)Subject(s): Online resources: Summary: In parallel programming, the need to manage communication, load imbalance, and irregularities in the omputation 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 parallelprogramming 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 portingprograms 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. Index Terms—MIMD, parallel, portable, programming model, scalable.
Star ratings
    Average rating: 0.0 (0 votes)

Formato de archivo: PDF. -- Disponible también en línea vía suscripción BECyT (Cons. 24-04-2008)

In parallel programming, the need to manage communication, load imbalance, and irregularities in the omputation 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 parallelprogramming 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 portingprograms 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. Index Terms—MIMD, parallel, portable, programming model, scalable.

IEEE Trans. on Parallel and Distributed Systems, Vol. 9 No. 1 (Jan. 1998): p. 71-86.