Portable software for multiprocessor systems

In this article we describe Prelude, a programming language and accompanying system support for writing portable parallel programs for multiprocessor architectures. Prelude allows the programmer to separate the description of the computation to be performed by a program from the description of how that computation is to be mapped onto a machine. This makes it easier to tune the performance of a program on a particular machine and also simplifies porting a program to new architectures.