Control abstraction in parallel programming languages

Abstract

Control abstraction is the process by which programmers define new control constructs by specifying an ordering of statement execution. Using control abstraction, we can create new control constructs for parallel programming, separate the specification of parallelism and synchronization from the rest of the application code, and vary the parallelism exploited during execution by selecting alternative implementations of control constructs. This paper argues for the inclusion of control abstraction in parallel programming languages by demonstrating that the benefits of control abstraction far outweigh the costs. We present a notation for precisely defining the meaning of a parallel control construct; and use that notation in the definition a small set of primitive mechanisms for parallel programming with control abstraction. We show how to define and implement new parallel control constructs using these primitive mechanisms, and provide examples of application-specific control constructs used in real programs . Finally, we describe techniques that can be used to implement a parallel programming language based on control abstraction, and demonstrate the efficiency of those techniques in an implementation on the BBN Butterfly multiprocessor .Keywords: parallel programming languages, control abstraction, architectural adaptability, closures, early reply, Matroshk

    Similar works