Results 1 
8 of
8
Systematic Efficient Parallelization of Scan and Other List Homomorphisms
 In Annual European Conference on Parallel Processing, LNCS 1124
, 1996
"... Homomorphisms are functions which can be parallelized by the divideandconquer paradigm. A class of distributable homomorphisms (DH) is introduced and an efficient parallel implementation schema for all functions of the class is derived by transformations in the BirdMeertens formalism. The schema ..."
Abstract

Cited by 27 (7 self)
 Add to MetaCart
Homomorphisms are functions which can be parallelized by the divideandconquer paradigm. A class of distributable homomorphisms (DH) is introduced and an efficient parallel implementation schema for all functions of the class is derived by transformations in the BirdMeertens formalism. The schema can be directly mapped on the hypercube with an unlimited or an arbitrary fixed number of processors, providing provable correctness and predictable performance. The popular scanfunction (parallel prefix) illustrates the presentation: the systematically derived implementation for scan coincides with the practically used "folklore" algorithm for distributedmemory machines.
Extracting and Implementing List Homomorphisms in Parallel Program Development
 Science of Computer Programming
, 1997
"... this paper, we study functions called list homomorphisms, which represent a particular pattern of parallelism. ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
this paper, we study functions called list homomorphisms, which represent a particular pattern of parallelism.
Rewriting skeleton programs: How to evaluate the dataparallel streamparallel tradeoff
 University of Passau
, 1998
"... Some skeleton based parallel programming models allow the programmer to use both data and stream parallel skeletons within the same program. It is known that particular skeleton nestings can be formally rewritten into different nestings that preserve the functional semantics. Indeed, the kind and ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
Some skeleton based parallel programming models allow the programmer to use both data and stream parallel skeletons within the same program. It is known that particular skeleton nestings can be formally rewritten into different nestings that preserve the functional semantics. Indeed, the kind and possibly the amount of parallelism usefully exploitable may change while rewriting takes place. Here we discuss an original framework allowing the user (and/or the compiling tools) of a skeleton based parallel programming language to evaluate whether or not the transformation of a skeleton program is worthwhile in terms of the nal program performance. We address, in particular, the evaluation of transformations exchanging data parallel and stream parallel skeleton subtrees.
A Methodology for Deriving Parallel Programs with a Family of Parallel Abstract Machines
 EuroPar'97 Parallel Processing, volume 1300 of LNCS
, 1997
"... Any parallel programming language provides a model of parallelism, and one can write a program directly in the language, accepting the fixed given model. We propose an alternative methodology: the program is derived in a sequence of steps, where each step incorporates just one decision, and is based ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
Any parallel programming language provides a model of parallelism, and one can write a program directly in the language, accepting the fixed given model. We propose an alternative methodology: the program is derived in a sequence of steps, where each step incorporates just one decision, and is based on a specific model of parallelism, called an abstract parallel machine, which is chosen to be suitable for that step. Each step is proved equivalent to the previous one. There is a family of related abstract parallel machines; each one is described by a set of parallel operations describing its behavior, and is related to similar abstract parallel machines by transformation theorems. In this paper we present the formalism for abstract parallel machines and illustrate the derivation process with two case studies.
Formal Derivation of DivideandConquer Programs: A Case Study in the Multidimensional FFT's
 Formal Methods for Parallel Programming: Theory and Applications. Workshop at IPPS'97
, 1997
"... This paper reports a case study in the development of parallel programs in the BirdMeertens formalism (BMF), starting from divideandconquer algorithm specifications. The contribution of the paper is twofold: (1) we classify divideandconquer algorithms and formally derive a parameterized family ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
This paper reports a case study in the development of parallel programs in the BirdMeertens formalism (BMF), starting from divideandconquer algorithm specifications. The contribution of the paper is twofold: (1) we classify divideandconquer algorithms and formally derive a parameterized family of parallel implementations for an important subclass of divideandconquer, called DH (distributable homomorphisms); (2) we systematically adjust the mathematical specification of the Fast Fourier Transform (FFT) to the DH format and thereby obtain a generic SPMD program, well suited for implementation under MPI. The target program includes the efficient FFT solutions used in practice the binaryexchange and the 2D and 3Dtranspose implementations as its special cases.
From a Tabular Classication to Parallel Implementations of Linearly Recursive Functions
, 1997
"... We propose a classication for a set of linearly recursive functions, which can be expressed as instances of a skeleton for parallel linear recursion, and present new parallel implementations for them. This set includes well known higherorder functions, like Broadcast, Reduction and Scan, which we c ..."
Abstract
 Add to MetaCart
We propose a classication for a set of linearly recursive functions, which can be expressed as instances of a skeleton for parallel linear recursion, and present new parallel implementations for them. This set includes well known higherorder functions, like Broadcast, Reduction and Scan, which we call basic components. Many compositions of these basic components are also linearly recursive functions; we present transformation rules from compositions of up to three basic components to instances of our skeleton. The advantage of this approach is that these instances have better parallel implementations than the compositions of the individual implementations of the corresponding basic components. Keywords: functional programming, linear recursion, parallelization, skeletons 1 Introduction Functional programming ooeers a very highlevel approach to specifying executable problem solutions. For example, the scheme of linear recursion can be expressed concisely as a higherorder function. I...