Integrating Task and Data Parallelism with the Group Communication Archetype

K. Mani Chandy, Rajit Manohar, Berna L. Massingill, and Daniel I. Meiron

A parallel program archetype aids in the development of reliable, efficient parallel applications with common computation/communication structures by providing stepwise refinement methods and code libraries specific to the structure. The methods and libraries help in transforming a sequential program into a parallel program via a sequence of refinement steps that help maintain correctness while refining the program to obtain the appropriate level of granularity for a target machine. The specific archetype discussed here deals with the integration of task and data parallelism using group communication. This archetype has been used to develop several applications.