Issue No. 01 - January (1998 vol. 9)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/71.655246
<p><b>Abstract</b>—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.</p>
MIMD, parallel, portable, programming model, scalable.
W. G. Griswold, G. A. Alverson, C. Lin, D. Notkin and L. Snyder, "Abstractions for Portable, Scalable Parallel Programming," in IEEE Transactions on Parallel & Distributed Systems, vol. 9, no. , pp. 71-86, 1998.