Results 1 
6 of
6
A cost calculus for parallel functional programming
 JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING
, 1995
"... Building a cost calculus for a parallel program development environment is difficult because of the many degrees of freedom available in parallel implementations, and because of difficulties with compositionality. We present a strategy for building cost calculi for skeletonbased programming languag ..."
Abstract

Cited by 61 (6 self)
 Add to MetaCart
Building a cost calculus for a parallel program development environment is difficult because of the many degrees of freedom available in parallel implementations, and because of difficulties with compositionality. We present a strategy for building cost calculi for skeletonbased programming languages which can be used for derivational software development and which deals in a pragmatic way with the difficulties of composition. The approach is illustrated for the BirdMeertens theory of lists, a parallel functional language with an associated equational transformation system. Keywords: functional programming, parallel programming, program transformation, cost calculus, equational theories, architecture independence, BirdMeertens formalism.
Parallel Implementation of Tree Skeletons
 Journal of Parallel and Distributed Computing
, 1996
"... Trees are a useful data type, but they are not routinely included in parallel programming systems because their irregular structure makes them seem hard to compute with e ciently. Wepresent a method for constructing implementations of skeletons, highlevel homomorphic operations on trees, that execu ..."
Abstract

Cited by 18 (2 self)
 Add to MetaCart
(Show Context)
Trees are a useful data type, but they are not routinely included in parallel programming systems because their irregular structure makes them seem hard to compute with e ciently. Wepresent a method for constructing implementations of skeletons, highlevel homomorphic operations on trees, that execute in parallel. In particular, we consider the case where the size of the tree is much larger than the the number of processors available, so that tree data must be partitioned. The approach uses the theory of categorical data types to derive implementation templates based on tree contraction. Many useful tree operations can be computed in time logarithmic in the size of their argument, on a wide range of parallel systems. 1 Contribution One common approach to generalpurpose parallel computation is based on packaging complex operations as templates, or skeletons [3, 12]. Skeletons encapsulate the control and data ow necessary to compute useful operations. This permits software to be written in a way that is independent of particular architectures, and indeed of underlying parallelism at all, while freeing implementations
A Cost Analysis for a Higherorder Parallel Programming Model
, 1996
"... Programming parallel computers remains a difficult task. An ideal programming environment should enable the user to concentrate on the problem solving activity at a convenient level of abstraction, while managing the intricate lowlevel details without sacrificing performance. This thesis investiga ..."
Abstract

Cited by 17 (1 self)
 Add to MetaCart
Programming parallel computers remains a difficult task. An ideal programming environment should enable the user to concentrate on the problem solving activity at a convenient level of abstraction, while managing the intricate lowlevel details without sacrificing performance. This thesis investigates a model of parallel programming based on the BirdMeertens Formalism (BMF). This is a set of higherorder functions, many of which are implicitly parallel. Programs are expressed in terms of functions borrowed from BMF. A parallel implementation is defined for each of these functions for a particular topology, and the associated execution costs are derived. The topologies which have been considered include the hypercube, 2D torus, tree and the linear array. An analyser estimates the costs associated with different implementations of a given program and selects a costeffective one for a given topology. All the analysis is performed at compiletime which has the advantage of reducing run...
Automated Parallelisation of code written in the BirdMeertens Formalism
, 2003
"... The BirdMeertens Formalism (BMF) is a calculus of higher order functions used to derive functional programs. It shows promise as a basis for a parallel model due to its highly parallelisable building blocks and the ease in which its code can be transformed through equalities. There is a reasonably ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
The BirdMeertens Formalism (BMF) is a calculus of higher order functions used to derive functional programs. It shows promise as a basis for a parallel model due to its highly parallelisable building blocks and the ease in which its code can be transformed through equalities. There is a reasonably large body of work exploring parallel cost models and parallelisation techniques for BMF constructs and of related constructs in related languages. Very little of this work is focused on the development of a constructive framework for parallelising entire programs written in BMF. An actual implementation will need technology developed by such research. This paper describes a partial implementation of a paralleliser for such
Mapping Adl to the BirdMeertens Formalism
, 1994
"... Bulk data operations such as map and reduce are an elegant medium for expressing repetitive computation over aggregate data structures. They also serve as a tool for abstraction: not all details of the computation, such as the exact ordering of the constituent operations, need to be specified by the ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Bulk data operations such as map and reduce are an elegant medium for expressing repetitive computation over aggregate data structures. They also serve as a tool for abstraction: not all details of the computation, such as the exact ordering of the constituent operations, need to be specified by the programmer. A precise description of the behaviour of the bulk data operator is the preserve of the language implementor. If the implementation of these operators is parallel then they become a medium for expressing implicit data parallelism. There is a large body of work formally the relating bulk data operators to each other and to their underlying data types. Much of this research stems from Category Theory where a number of general properties of types and operators have been established. One theoretical framework in particular, the BirdMeertens Formalism (BMF), has proved to be extremely useful. The BMF theory of a type provides a set of operators on that type and a set of algebraic id...
unknown title
, 1994
"... A supercomputer implementation of a functional data parallel language ..."
(Show Context)