Publications

Concurrency: Simple concepts and powerful tools

Abstract

Stepwise refinement is a central program development methodology that has been applied extensively to the design of sequential and parallel programs. In this methodology, a problem is successively decomposed into subproblems in order to untangle seemingly interdependent aspects of the design. To apply the methodology to parallel programs, one must be able to separate and reason about issues such as partitioning and mapping.
This paper describes programming language concepts that we have found useful in applying stepwise refinement to parallel programs. The concepts allow decisions concerning program structure to be delayed until late in the design process. This capability permits rapid experimentation with alternative structures and leads to both portable and scalable code. Although simple, the concepts form a sufficient basis for the construction of powerful programming tools. Both …

Date
January 1, 1990
Authors
Ian Foster, Carl Kesselman, Stephen Taylor
Journal
The Computer Journal
Volume
33
Issue
6
Pages
501-507
Publisher
Oxford University Press