## Formal Derivation of Divide-and-Conquer Programs: A Case Study in the Multidimensional FFT's (1997)

Venue: | Formal Methods for Parallel Programming: Theory and Applications. Workshop at IPPS'97 |

Citations: | 5 - 3 self |

### BibTeX

@INPROCEEDINGS{Gorlatch97formalderivation,

author = {Sergei Gorlatch and Holger Bischof},

title = {Formal Derivation of Divide-and-Conquer Programs: A Case Study in the Multidimensional FFT's},

booktitle = {Formal Methods for Parallel Programming: Theory and Applications. Workshop at IPPS'97},

year = {1997},

pages = {80--94}

}

### OpenURL

### Abstract

This paper reports a case study in the development of parallel programs in the Bird-Meertens formalism (BMF), starting from divide-and-conquer algorithm specifications. The contribution of the paper is two-fold: (1) we classify divide-and-conquer algorithms and formally derive a parameterized family of parallel implementations for an important subclass of divide-and-conquer, 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 binary-exchange and the 2D- and 3D-transpose implementations as its special cases.

### Citations

1309 | Monads for Functional Programming
- Wadler
- 1995
(Show Context)
Citation Context ...ecications similar to (1). We introduce a formal notation and then demonstrate how the divideand -conquer strategy can be cast in it. 2.2. Bird-Meertens Formalism In the Bird-Meertens formalism (BMF) =-=[3, 14]-=-, higher-order functions are dened on arbitrary composite types (lists, trees, arrays, etc.), and equational reasoning is used for deriving programs by transformation. We restrict ourselves to non-emp... |

440 |
Can programming be liberated from the von neumann style? A functional style and its algebra of programs
- Backus
- 1978
(Show Context)
Citation Context ...nction application, @, with the fully curried version of zip which we denote c zip: c zip (@) [f 1 ; : : : ; f k ] [x 1 ; : : : ; x k ] = [f 1 x 1 ; : : : ; f k x k ] (2) From the Backus' FP notation =-=[2]-=-, we borrow the following two combinators: construction: ! f 1 ; : : : ; f n ? x def = (f 1 x ; : : : ; f n x ) and also the conditional dened as follows: (p 7! A; B) x def = if p then A x else B x . ... |

69 |
Foundations of Parallel Programming
- Skillicorn
- 1994
(Show Context)
Citation Context ...ecications similar to (1). We introduce a formal notation and then demonstrate how the divideand -conquer strategy can be cast in it. 2.2. Bird-Meertens Formalism In the Bird-Meertens formalism (BMF) =-=[3, 14]-=-, higher-order functions are dened on arbitrary composite types (lists, trees, arrays, etc.), and equational reasoning is used for deriving programs by transformation. We restrict ourselves to non-emp... |

69 | The design of a standard message passing interface for distributed memory concurrent computers
- Walker
- 1994
(Show Context)
Citation Context ...each stage, expressed by chdim, is a transposition of two dimensions. It requires a personalized all-to-all communication of processors (which can be implemented by, e.g., the MPI primitive All-ToAll =-=[15]-=-), followed by an intra-processor rearrangement. The second part of a stage computes the function along the last dimension. Since the last dimension is not distributed, such computations on dioeerent ... |

59 | Powerlist: A structure for parallel recursion
- Misra
- 1994
(Show Context)
Citation Context ...n order to make divide-and-conquer functions distributable, i.e. to enable their distributed implementation. From now on, we assume that lists' length is a power of 2 (they are also called powerlists =-=[11]-=-), functionsdiv splits the input list in the middle, without any additional rearrangements, and con is a componentwise function. These restrictions are captured in the class DH (distributable homomorp... |

55 |
Algorithmic skeletons: a structured approach to the management of parallel computation
- Cole
- 1988
(Show Context)
Citation Context ...-Meertens formalism (BMF), where higherorder functions on lists are used for specication, and equational reasoning is used for program derivation. More specically, we take the skeleton-based approach =-=[4]-=- which captures the ubiquitous patterns of parallelism in a mathematically rigorous, higherorder way. The transformational, skeleton-based approach splits the task of parallel programming between two ... |

23 | Parallel Computing - Quinn - 1994 |

17 | Systematic extraction and implementation of divide-and-conquer parallelism
- Gorlatch
- 1996
(Show Context)
Citation Context ...nto a list of lists. The divide-and-conquer specications may also have a nested control structure. For example, the problem of parsing many-bracket languages is a so-called nested almost-homomorphism =-=[8]-=-, i.e. a C algorithm, whose con is again a C function; we denote this class by C (C ). Another well-known example is bitonic sort, which belongs to the class C (D); see [1, 12] for details. 4. Case St... |

16 |
An Algebraic Model for Divide-and-Conquer Algorithms and its Parallelism
- Mou, Hudak
(Show Context)
Citation Context ...ribes a special data representation and does no iusefulj work. Separation of the divide or the conquer phase leads to so-called pre- and postmorphisms or topdown and bottom-up algorithms respectively =-=[1, 12]-=-. Following our DC acronym, we call such one-sided schemes D and C algorithms, i.e. iDivide (without Conquer)j and iConquer (without Divide)j, correspondingly. For example, list homomorphisms in BMF [... |

9 | Architecture independent massive parallelization of divide-and-conquer algorithms
- Achatz, Schulte
- 1995
(Show Context)
Citation Context ...ive at the base case. The nesting of the lists is growing with each divide step; to apply function f to the elements of a list of nesting depth 2, we use the functional map as follows: map (map f ) [ =-=[1; 2]-=-; [3; 4] ] = [ [ f 1; f 2 ]; [ f 3; f 4 ] ] By denoting map l div def = map (map l\Gamma1 div), the entire divide phase rewrites as the following multiple (sequential) composition: (map l\Gamma1 div) ... |

8 |
et al. The CMU task parallel program suite
- Dinda
- 1994
(Show Context)
Citation Context ...s like, e.g., programs (12) and (14). Such programs are easy to understand and their performance can usually be easily estimated. They are sometimes viewed as combining both task and data parallelism =-=[5]-=-. Another advantage is that our solutions are architecture-independent and are well suited for implementation by means of collective communication libraries like MPI, which have eOEcient versions on p... |

8 | Stages and transformations in parallel programming
- Gorlatch
- 1996
(Show Context)
Citation Context ...hat case, time can be gained comparing to the direct implementation. We are usually looking for a distributed phase of a given divide-and-conquer function in the form of a sequence of parallel stages =-=[6]-=-; such form is well suited for an SPMD implementation. The problem of nding a distributed implementation can be formulated in two ways: ffl For a given divide-and-conquer specication of a function h o... |

4 |
et al. Introduction to Parallel Computing
- Kumar
- 1994
(Show Context)
Citation Context ...ist x = [x 0 ; : : : ; x n \Gamma1 ] of length n = 2 l . The Fast Fourier Transform function, which we denote FFT, yields for x a list of the same length, whose i -th element is dened as follows (see =-=[10]-=-), with u = [x 0 ; x 2 ; : : : ; x n \Gamma2 ] and v = [x 1 ; x 3 ; : : : ; x n \Gamma1 ]: \Gamma FFT x \Delta i = n \Gamma1 X k=0 x k ! ki n = n=2\Gamma1 X k=0 x 2k ! ki n=2 + ! i n n=2\Gamma1 X k=0 ... |

3 |
Parallelization of divide-and conquer in the Bird- Meertens formalism
- Gorlatch, Lengauer
- 1993
(Show Context)
Citation Context ...ntation The BMF functional map in (3) points to the main source of parallelism in DC-algorithms, namely the independent computations on the two parts after division; we used similar representation in =-=[9]-=-. Our goal is to develop an eOEcient parallel program from a DC specication. Let us rst look at what kind of parallelism is hidden in the recursive specication (3) and what one could expect from its i... |

2 |
Systematic eOEcient parallelization of scan and other list homomorphisms
- Gorlatch
- 1996
(Show Context)
Citation Context ... input list in the middle, without any additional rearrangements, and con is a componentwise function. These restrictions are captured in the class DH (distributable homomorphisms), rst introduced in =-=[7]-=-; DH is a subclass of list homomorphisms [3]. Definition 4 For two binary operations, \Phi and\Omega , a distributable homomorphism is function (\Phi l\Omega ) : [ff] ! [ff], such that for arbitrary l... |