## Derivation of Efficient Data Parallel Programs (1993)

Venue: | In 17th Australasian Computer Science Conference |

Citations: | 6 - 0 self |

### BibTeX

@INPROCEEDINGS{Roe93derivationof,

author = {Paul Roe},

title = {Derivation of Efficient Data Parallel Programs},

booktitle = {In 17th Australasian Computer Science Conference},

year = {1993},

pages = {621--628}

}

### OpenURL

### Abstract

This paper considers the expression and derivation of efficient data parallel programs for SIMD and MIMD machines. It is shown that efficient parallel programs must utilise both sequential and parallel computation; these are termed hybrid programs. The Bird--Meertens formalism, a calculus of higher order functions, is used to derive and express programs. Our goal is to derive efficient parallel programs for a variety of machines by: starting with an abstract specification, deriving an abstract algorithm and successively refining this to more efficient and machine dependent algorithms incorporating greater implementation detail. Nested data structures are used to express hybrid algorithms. Using this technique efficient accumulate (scan/parallel prefix) algorithms are derived for SIMD and MIMD machines. 1 Introduction The main reason for parallel programming is to achieve high performance. Unfortunately designing and writing efficient parallel programs, especially for MIMD machines, i...

### Citations

1354 | Introduction to Functional Programming
- Bird, Wadler
- 1988
(Show Context)
Citation Context ...and the following references are highly recommended: [3, 9]. Essentially we follow Bird's notation (except that we curry operators). For more background information on programming using functions see =-=[2]-=-. In BMF function application is expressed by juxtaposition for example f a b; function application associates to the left f a b = (f a) b. Functions may be composed thus: f \Delta g. It is assumed th... |

473 |
Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. j-CACM
- Backus
- 1978
(Show Context)
Citation Context ... conclusions. 2 Bird--Meertens formalism 2.1 Basics The Bird--Meertens formalism is a concise notation for expressing and deriving functional programs. It is, in some respects, similar to Backus's FP =-=[1]-=-; they are both algebraic approaches to program transformation. However, unlike FP, BMF is typed and it is in general more flexible than FP. Bird and 1 Meertens jointly developed this formalism and th... |

279 | Parallel prefix computation
- Ladner, Fischer
- 1980
(Show Context)
Citation Context ...d; this may be a primitive or it may be programmed. In the latter case the definition previously given for accumulate may be used or the more efficient algorithm of Ladner and Fischer may be employed =-=[8]-=-. (Gibbons has investigated the derivation of algorithms similar to the latter in [6].) Assuming that parallel accumulate takes logarithmic time, this algorithm runs in time dn=pe \Theta (ln p + 1) wh... |

152 | Parallel programming using skeleton functions
- Darlington, Field, et al.
- 1993
(Show Context)
Citation Context ...m and successively refining this to more efficient and machine dependent algorithms incorporating greater implementation detail. This is similar in spirit to the Skeletons project at Imperial College =-=[5]-=-. In this paper it is shown that efficient parallel programs comprise both parallel and sequential computation. Such programs are termed hybrid programs. The main result of this paper is to show how h... |

96 |
Algorithmics — towards programming as a mathematical activity
- Meertens
- 1986
(Show Context)
Citation Context ... transformation. However, unlike FP, BMF is typed and it is in general more flexible than FP. Bird and 1 Meertens jointly developed this formalism and the following references are highly recommended: =-=[3, 9]-=-. Essentially we follow Bird's notation (except that we curry operators). For more background information on programming using functions see [2]. In BMF function application is expressed by juxtaposit... |

92 |
Architecture-independent parallel computation
- Skillicorn
- 1990
(Show Context)
Citation Context ...e proposed the use of higher order functions for simplifying parallel programming, and calculi of these functions for deriving to appear in: Proc. ACSC--17, Jan '93, Christchurch NZ parallel programs =-=[4, 7, 13]-=-. One such calculus is the Bird--Meertens formalism (BMF); this paper investigates its use for deriving efficient parallel programs, and in particular data parallel programs. Our goal is to derive eff... |

12 |
Divacon: A parallel language for scientific computing based on divide-and-conquer
- Mou
- 1990
(Show Context)
Citation Context ...he paper. It may be informally defined thus: \Phi == ! [a 1 ; a 2 ; : : : ; an ] = [a 1 ; a 1 \Phi a 2 ; : : : ; a 1 \Phi a 2 \Phi \Delta \Delta \Delta \Phi an ] For example: + == ! [1; 2; 3; 4; 5] = =-=[1; 3; 6; 10; 15]-=-. A right-wise accumulate may be defined in an analogous way, and similar results apply to it; however, this is pursued no further in this paper. The second data structure which we will make use of ar... |

12 | Optimal schedules for parallel prefix computation with bounded resources
- Nicolau, Wang
- 1991
(Show Context)
Citation Context ...uns in time dn=pe \Theta (ln p + 1) where the input size is n and the size of the SIMD machine is p. This is a reasonably efficient algorithm. Theoretically, there are quicker algorithms, for example =-=[11]-=-, but the practicality of these complex algorithms is unknown. 5 Hybrid MIMD accumulate This section describes the derivation of an efficient MIMD accumulate. The derivation starts in a similar way to... |

11 |
A Higher-Order Approach to Parallel Algorithms
- Harrison
- 1992
(Show Context)
Citation Context ...e proposed the use of higher order functions for simplifying parallel programming, and calculi of these functions for deriving to appear in: Proc. ACSC--17, Jan '93, Christchurch NZ parallel programs =-=[4, 7, 13]-=-. One such calculus is the Bird--Meertens formalism (BMF); this paper investigates its use for deriving efficient parallel programs, and in particular data parallel programs. Our goal is to derive eff... |

9 | Computing downwards accumulations on trees quickly
- Gibbons
- 1996
(Show Context)
Citation Context ...: map () and reduce (=). Informally: fs[a 1 ; a 2 ; : : : ; an ] = [f a 1 ; f a 2 ; : : : ; f an ] \Phi=[a 1 ; a 2 ; : : : ; an ] = a 1 \Phi a 2 \Phi : : : \Phi an For example: (+1)s[1; 2; 3; 4; 5] = =-=[2; 3; 4; 5; 6]-=- and +=[1; 2; 3; 4; 5] = 15. The operator used in a reduction must be associative. In the case that a reduction is applied to the empty list the result is the identity element of the operator. The ide... |

8 |
Lecture notes on constructive functional programming
- Bird
- 1988
(Show Context)
Citation Context ... transformation. However, unlike FP, BMF is typed and it is in general more flexible than FP. Bird and 1 Meertens jointly developed this formalism and the following references are highly recommended: =-=[3, 9]-=-. Essentially we follow Bird's notation (except that we curry operators). For more background information on programming using functions see [2]. In BMF function application is expressed by juxtaposit... |

7 |
Describing hardware algorithms in Ruby
- Sheeran
- 1989
(Show Context)
Citation Context ...o. Incorporating this kind of restriction (type restriction) into programs is an area of research. Sheeran's excellent work on Ruby (a relational language similar to BMF) looks promising in this area =-=[12]-=-. 7 Conclusions It has been shown that writing efficient algorithms for SIMD and MIMD machines entails writing hybrid algorithms which utilise parallel and sequential computation. Hybrid algorithms ma... |

3 | Higher order functions for parallel evaluation - Cole |