Control Abstraction in Parallel Programming Languages

Lawrence A. Crowl and Thomas J. LeBlanc, "Control Abstraction in Parallel Programming Languages", Technical Report 91-80-03 Revised, Department of Computer Science, Oregon State University, Corvallis, Oregon, 97331-3202, February 1992

Control abstraction is the process by which programmers define new control constructs, specifying a statement ordering separately from an implementation of that ordering. We argue that control abstraction can and should play a central role in parallel programming. Control abstraction can be used to build new control constructs for the expression of parallelism. A control construct can have several implementations, representing the varying degrees of parallelism to be exploited on different architectures. Control abstraction also reduces the need for explicit synchronization, since it admits a precise specification of control flow. Using several examples, we illustrate these benefits of control abstraction. We also show that we can efficiently implement a parallel programming language based on control abstraction. We conclude that the enormous benefits and reasonable costs of control abstraction argue for its inclusion in explicitly parallel programming languages.


Comments to Lawrence@Crowl.org.
Last modified on 02 Feb 1900.