Performance and Scalability Issues in the Design and Implementation of a Parallel Programming Environment

Parsec is a parallel programming environment whose goal is to simplify the development of multicomputer programs without, as is often the case, sacrificing performance. We have reconciled these objectives by “compiling” the structure of parallel applications into information to configure each of a small set of communication primitives on a context sensitive basis. In this chapter we show how Parsec can be used to implement a high-performance processor farm and compare Parsec and hand-optimized implementations to demonstrate that Parsec can achieve a similar level of performance. Extensive static analysis and optimization is necessary to achieve these results. We discuss both the tools which perform these tasks as well as the user interface that provides the necessary declarative structural information. Using the processor farm, we show how Parsec simplifies the task of specifying the structure of a parallel application and improves the result by supporting abstraction, reuse and scalability.

[1]  Anthony J. G. Hey,et al.  Experiments in mimd parallelism , 1989, Future Gener. Comput. Syst..

[2]  Edward J. Delp,et al.  A library-based program development environment for parallel image processing , 1993, Proceedings of Scalable Parallel Libraries Conference.

[3]  Naranker Dulay,et al.  A constructive development environment for parallel and distributed programs , 1994, Proceedings of 2nd International Workshop on Configurable Distributed Systems.

[4]  Jack J. Dongarra,et al.  Graphical development tools for network-based concurrent supercomputing , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[5]  Computer Staff 12 parallel programming principles , 1994 .

[6]  James C. Browne,et al.  CODE: a unified approach to parallel programming , 1989, IEEE Software.

[7]  Rubén Prieto-Díaz,et al.  Software reusability , 1993 .

[8]  David Feldcamp,et al.  Parsec—a software development environment for performance oriented parallel programming , 1993 .

[9]  Anthony Skjellum,et al.  High-level message-passing constructs for Zipcode 1.0: design and implementation , 1993, Proceedings of Scalable Parallel Libraries Conference.