Design patterns for parallel computing using a network of processors
- 22 November 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- Vol. 8 (10828907) , 293-304
- https://doi.org/10.1109/hpdc.1997.626434
Abstract
High complexity of building parallel applications is often cited as one of the major impediments to the mainstream adoption of parallel computing. To deal with the complexity of software development, abstractions such as macros, functions, abstract data types, and objects are commonly employed by sequential as well as parallel programming models. This paper describes the concept of a design pattern for the development of parallel applications. A design pattern in our case describes a recurring parallel programming problem and a reusable solution to that problem. A design pattern is implemented as a reusable code skeleton for quick and reliable development of parallel applications. A parallel programming system, called DPnDP (Design Patterns and Distributed Processes), that employs such design patterns is described. In the past, parallel programming systems have allowed fast prototyping of parallel applications based on commonly occurring communication and synchronization structures. The uniqueness of our approach is in the use of a standard structure and interface for a design pattern. This has several important implications: first, design patterns can be defined and added to the system's library in an incremental manner without requiring any major modification of the system (extensibility). Second, customization of a parallel application is possible by mixing design patterns with low level parallel code resulting in a flexible and efficient parallel programming tool (flexibility). Also, a parallel design pattern can be parameterized to provide some variations in terms of structure and behavior.Keywords
This publication has 9 references indexed in Scilit:
- An experiment to measure the usability of parallel programming systemsConcurrency: Practice and Experience, 1996
- Graphical design of distributed applications through reusable componentsIEEE Parallel & Distributed Technology: Systems & Applications, 1995
- The design of a standard message passing interface for distributed memory concurrent computersParallel Computing, 1994
- The Enterprise model for developing distributed applicationsIEEE Parallel & Distributed Technology: Systems & Applications, 1993
- Network-based concurrent computing on the PVM systemConcurrency: Practice and Experience, 1992
- Graphical development tools for network-based concurrent supercomputingPublished by Association for Computing Machinery (ACM) ,1991
- A template-based approach to the generation of distributed applications using a network of workstationsIEEE Transactions on Parallel and Distributed Systems, 1991
- PIE: A Programming and Instrumentation Environment for Parallel ProcessingIEEE Software, 1985
- Concepts and Notations for Concurrent ProgrammingACM Computing Surveys, 1983