Results 1 -
2 of
2
Coordinating heterogeneous parallel systems with skeletons and activity graphs
- Journal of Systems Integration
"... Abstract. Large scale parallel programming projects may become heterogeneous in both language and architectural model. We propose that skeletal programming techniques can alleviate some of the costs involved in designing and porting such programs, illustrating our approach with a simple program whic ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Abstract. Large scale parallel programming projects may become heterogeneous in both language and architectural model. We propose that skeletal programming techniques can alleviate some of the costs involved in designing and porting such programs, illustrating our approach with a simple program which combines shared memory and message passing code. We introduce Activity Graphs as a simple and practical means of capturing model independent aspects of the operational semantics of skeletal parallel programs. They are independent of low level details of parallel implementation and so can act as an intermediate layer for compilation to diverse underlying models. Activity graphs provide a notion of parallel activities, dependencies between activities, and the process groupings within which these take place. The compilation process uses a set of graph generators (templates) to derive the activity graph. We describe simple schemes for transforming activity graphs into message passing programs, targeting both MPI and BSP.
Integrating task and data parallelism with taskHPF
"... Many applications exhibit a large amount of potential parallelism that can be exploited at both data and task levels. In this paper, we consider applications which can be structured as ensembles of independent data parallel HPF modules (hereafter HPF tasks). We also assume that HPF tasks interact ..."
Abstract
- Add to MetaCart
Many applications exhibit a large amount of potential parallelism that can be exploited at both data and task levels. In this paper, we consider applications which can be structured as ensembles of independent data parallel HPF modules (hereafter HPF tasks). We also assume that HPF tasks interact according to a static and predictable structure. We describe taskHPF a coordination language in which the user can dene the HPF tasks with a clean input and output interface, and program the global interaction structure among tasks in a declarative way. We examine a small example application to discuss the benets of our approach, and we show how taskHPF programs can be translated into ecient message-passing code. 1 Introduction Many applications show potential for exploiting both data and task parallelism. Data parallelism is characterized by the application of the same operation to dierent parts of the related data set. In task parallelism, distinct parts of the program proceed ind...

