Results 1 
9 of
9
Systematic Extraction and Implementation of DivideandConquer Parallelism
 Programming languages: Implementation, Logics and Programs, Lecture Notes in Computer Science 1140
, 1996
"... Homomorphisms are functions that match the divideandconquer paradigm and thus can be computed in parallel. Two problems are studied for homomorphisms on lists: (1) parallelism extraction: finding a homomorphic representation of a given function; (2) parallelism implementation: deriving an efficien ..."
Abstract

Cited by 22 (5 self)
 Add to MetaCart
(Show Context)
Homomorphisms are functions that match the divideandconquer paradigm and thus can be computed in parallel. Two problems are studied for homomorphisms on lists: (1) parallelism extraction: finding a homomorphic representation of a given function; (2) parallelism implementation: deriving an efficient parallel program that computes the function. A systematic approach to parallelism extraction proceeds by generalization of two sequential representations based on traditional cons lists and dual snoc lists. For some nonhomomorphic functions, e.g., the maximum segment sum problem, our method provides an embedding into a homomorphism. The implementation is addressed by introducing a subclass of distributable homomorphisms and deriving for them a parallel program schema, which is time optimal on the hypercube architecture. The derivation is based on equational reasoning in the BirdMeertens formalism, which guarantees the correctness of the parallel target program. The approach is illustrated with function...
Parallelization of DivideandConquer by Translation to Nested Loops
 J. Functional Programming
, 1997
"... We propose a sequence of equational transformations and specializations which turns a divideandconquer skeleton in Haskell into a parallel loop nest in C. Our initial skeleton is often viewed as general divideandconquer. The specializations impose a balanced call tree, a fixed degree of the prob ..."
Abstract

Cited by 13 (7 self)
 Add to MetaCart
(Show Context)
We propose a sequence of equational transformations and specializations which turns a divideandconquer skeleton in Haskell into a parallel loop nest in C. Our initial skeleton is often viewed as general divideandconquer. The specializations impose a balanced call tree, a fixed degree of the problem division, and elementwise operations. Our goal is to select parallel implementations of divideandconquer via a spacetime mapping, which can be determined at compile time. The correctness of our transformations is proved by equational reasoning in Haskell; recursion and iteration are handled by induction. Finally, we demonstrate the practicality of the skeleton by expressing Strassen's matrix multiplication in it.
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
(Show Context)
this paper, we study functions called list homomorphisms, which represent a particular pattern of parallelism.
Practical Parallel DivideandConquer Algorithms
, 1997
"... Nested data parallelism has been shown to be an important feature of parallel languages, allowing the concise expression of algorithms that operate on irregular data structures such as graphs and sparse matrices. However, previous nested dataparallel languages have relied on a vector PRAM impleme ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
Nested data parallelism has been shown to be an important feature of parallel languages, allowing the concise expression of algorithms that operate on irregular data structures such as graphs and sparse matrices. However, previous nested dataparallel languages have relied on a vector PRAM implementation layer that cannot be efficiently mapped to MPPs with high interprocessor latency. This thesis shows that by restricting the problem set to that of dataparallel divideandconquer algorithms I can maintain the expressibility of full nested dataparallel languages while achieving good efficiency on current distributedmemory machines. Specifically, I define
On The SpaceTime Mapping Of A Class Of DivideAndConquer Recursions
, 1996
"... We propose a functional program skeleton for balanced fixeddegree divideandconquer and a method for its parallel implementation on messagepassing multiprocessors. In the method, the operations of the skeleton are first mapped to a geometric computational model which is then mapped to spacetime ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
We propose a functional program skeleton for balanced fixeddegree divideandconquer and a method for its parallel implementation on messagepassing multiprocessors. In the method, the operations of the skeleton are first mapped to a geometric computational model which is then mapped to spacetime in order to expose the inherent parallelism. This approach is inspired by the method of parallelizing nested loops in the polytope model. Keywords: divideandconquer, functional program, parallelization, skeleton, spacetime mapping. 1. Introduction The divideandconquer (DC) paradigm is a special case of cascading recursion which enables efficient solutions to many practical problems like the multiplication of matrices or large integers, Fast Fourier Transform, sorting, etc. We are interested in the parallelization of DC recursions with the goal of sublinear execution times on a mesh. Sublinearity can only be achieved if the input is read in parallel. We choose a mesh because it is a w...
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
(Show Context)
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.
Massive parallelization of divideandconquer algorithms over powerlists. Science of Computer Programming, 26:5978
 In 4th Principles and Practice of Parallel Programming
, 1996
"... It contains all proofs of the introduced transformation rules as well as programming examples on a SIMD computer. ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
It contains all proofs of the introduced transformation rules as well as programming examples on a SIMD computer.
Transformation of Divide Conquer to Nested Parallel Loops
 In Programming Languages: Implementation, Logics, and Programs, LNCS 1292
, 1997
"... We propose a sequence of equational transformations and specializations which turns a divideandconquer skeleton in Haskell into a parallel loop nest in C. Our initial skeleton is often viewed as general divideandconquer. The specializations impose a balanced call tree, a fixed degree of the prob ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
We propose a sequence of equational transformations and specializations which turns a divideandconquer skeleton in Haskell into a parallel loop nest in C. Our initial skeleton is often viewed as general divideandconquer. The specializations impose a balanced call tree, a fixed degree of the problem division, and elementwise operations. Our goal is to select parallel implementations of divideandconquer via a spacetime mapping, which can be determined at compile time. The correctness of our transformations is proved by equational reasoning in Haskell; recursion and iteration are handled by induction. Finally, we demonstrate the practicality of the skeleton by expressing Strassen's matrix multiplication in it.