Parallel Functional Programming by Partitioning

Frank Taylor

This thesis was submitted on the 10th September, 1996 and examined on the 14th January, 1997. Only minor corrections were required.

Abstract:

Caliban is a declarative language which addresses the area of static distributed memory parallel computing. It is an annotation language that allows the programmer to partition a functional program and data amongst the computational resources available. It is integrated into the source language so that the full power of the host language can be used to express the partitioning of the program. Partial evaluation is used to determine a complete version of the annotation at compile time. Program transformation is then used to make the parallelism explicit.

This thesis describes the Caliban language and its pilot implementation. It then continues by presenting extensions and improvements to the basic language. Implementation techniques for the improved language are discussed in relation to an implementation on the Fujitsu AP1000 distributed memory multiprocessor computer. Two application case studies together with some performance results are presented. Finally, there is a critical appraisal of the language and its approach.

Caliban has good support for general data and computation partitioning. It also aids software reuse with its ability to abstract common computational structures into higher order forms which are concretised at compile time by partial evaluation. However, there do remain some open issues relating to evaluation order control. Finally, Caliban can be implemented reasonably efficiently on standard parallel hardware.


Click below to download a copy of this thesis:
[Home] Frank Taylor - 10/7/2004