The Higher-Order Parallel Programming (HOPP) Model

Roopa Rangaswami

Programming parallel computers remains a difficult task. An ideal parallel programming environment should enable the user to concentrate on the problem-solving activity at a convenient level of abstraction, while managing the intricate low-level details without sacrificing performance.

In an attempt to achieve these goals, a model of parallel programming based on the Bird-Meertens Formalism (BMF) is investigated. It comprises of a predefined set of higher-order functions, many of which are implicitly parallel. Programs are expressed as compositions of these higher-order functions. A parallel implementation is defined for each of these functions and associated costs are derived. An analyser estimates the costs associated with different possible implementations of a given program and selects a cost-effective one. The parallel implementation strategy output by the analyser is input to a code generator which produces parallel SPMD code in C++, using MPI to handle communication.

Initial experiments involving the generation and execution of parallel code for predicted cost-effective implementations of simple problems on the Cray-T3D are encouraging. Further work will concentrate on the expressivity of the model.