Approaches for Integrating Task and Data Parallelism

Languages that support both task and data parallelism are highly general and can exploit both forms of parallelism within a single application. However, integrating the two forms of parallelism cleanly and within a coherent programming model is difficult. This paper describes four languages (Fx, Opu...

Full description

Bibliographic Details
Main Authors: Henri E. Bal, Matthew Haines
Other Authors: The Pennsylvania State University CiteSeerX Archives
Format: Text
Language:English
Published: 1998
Subjects:
Fx
HPF
Online Access:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.3811
Description
Summary:Languages that support both task and data parallelism are highly general and can exploit both forms of parallelism within a single application. However, integrating the two forms of parallelism cleanly and within a coherent programming model is difficult. This paper describes four languages (Fx, Opus, Orca, and Braid) that try to achieve such an integration and identifies several problems. The main problems are how to support both SPMD and MIMD style programs, how to organize the address space of a parallel program, and how to design the integrated model such that it can be implemented efficiently. Keywords: Parallel programming systems, task parallelism, data parallelism, shared objects, coordination languages, Fx, Opus, Braid, Orca, HPF. Introduction Most parallel programming systems are based either on task parallelism or on data parallelism. Task parallelism (also known as control or process parallelism) allows the programmer to define different types of processes. These .