Paper Description: Herrmann04a

Title: Functional Meta-Programming in the Construction of Parallel Programs

BibTeX entry:

@InProceedings{Herrmann04a,
author={Christoph A.~Herrmann},
title={Functional Meta-Programming in the Construction of Parallel Programs},
booktitle={CMPP 2004: 4th International Workshop on Constructive Methods for Parallel Programming},
editor={Sergei Gorlatch},
month=july,
year=2004,
publisher={Westf\"alische Wilhelms-Universit\"at M\"unster} }

Abstract

Abstraction is important for the safe and predictable construction of parallel programs. Because meta-programming in MetaOCaml enables an analysis of declarative specifications, it can provide abstract code construction without incurring inefficiencies. In the parallel SPMD setting, each processor specializes the program according to its particular role in the ensemble and then executes it. Due to the hybrid nature of the implementation language Objective Caml, the generated code can contain imperative features like loops and arrays, which is important for efficient numerical computations.
An overview of the language MetaOCaml sketches the basic features of how meta-programming works. A small example demonstrates how meta-programming can generate the appropriate set of communications for a particular process from an abstract specification.
The proposed approach distinguishes three levels of abstraction and their instantiation in the domain of parallel programming.
  1. Domain definition: a small specification language defines the static parallel program structure. This language comes with a cost model and a partial evaluator which acts as a code transformer.
  2. Skeletons developed by domain experts: the specification language and the meta-programming features of MetaOCaml are used to define a function which generates code for a divide-and-conquer skeleton.
  3. Application program: the application programmer composes the program using skeletons, without the need to consider details of parallelism.
Our example application is Karatsuba's polynomial multiplication. The experimental results for this example demonstrate an encouraging efficiency, but also the potential for further improvements.

Paper itself:

We are sorry, but due to an unclear copyright situation we cannot provide a download of the paper from this site at the moment.

Author:

Paper-related information

Cross links:

Christoph A. Herrmann