Results 1 -
2 of
2
Parallel Programming Using Skeleton Functions
, 1993
"... Programming parallel machines is notoriously difficult. Factors contributing to this difficulty include the complexity of concurrency, the effect of resource allocation on performance and the current diversity of parallel machine models. The net result is that effective portability, which depends ..."
Abstract
-
Cited by 140 (7 self)
- Add to MetaCart
Programming parallel machines is notoriously difficult. Factors contributing to this difficulty include the complexity of concurrency, the effect of resource allocation on performance and the current diversity of parallel machine models. The net result is that effective portability, which depends crucially on the predictability of performance, has been lost. Functional programming languages have been put forward as solutions to these problems, because of the availability of implicit parallelism. However, performance will be generally poor unless the issue of resource allocation is addressed explicitly, diminishing the advantage of using a functional language in the first place. We present a methodology which is a compromise between the extremes of explicit imperative programming and implicit functional programming. We use a repertoire of higher-order parallel forms, skeletons, as the basic building blocks for parallel implementations and provide program transformations wh...
Building Parallel Applications Without Programming
, 1993
"... To counter the problems of the parallel programming, we propose an approach based on using a fixed range of computation patterns, which we call skeletons. This approach provides a path to efficient but correct programs by separating the issues of behaviour and meaning, and through the exploitation o ..."
Abstract
-
Cited by 9 (2 self)
- Add to MetaCart
To counter the problems of the parallel programming, we propose an approach based on using a fixed range of computation patterns, which we call skeletons. This approach provides a path to efficient but correct programs by separating the issues of behaviour and meaning, and through the exploitation of the knowledge we have about the fixed patterns of computation and communication of the skeletons. The method can be applied to specific application domains by observing that recurring patterns of data and control structures appear in these domains. Often, for any one domain, there may be many different sets of patterns reflecting abstract and concrete structures. Equivalences can be derived between these sets, through transformations, to enable problem expression at an application's level, but efficient execution at the machine level. We demonstrate this through an example in solid modelling. 1.1 Introduction Even though there has been a rise in the number of commercially available para...

