Parallel programming with control abstraction

Lawrence A. Crowl, Thomas J. LeBlanc

Research output: Contribution to journalArticlepeer-review

1 Scopus citations


Parallel programming involves finding the potential parallelism in an application and mapping it to the architecture at hand. Since a typical application has more potential parallelism than any single architecture can exploit effectively, programmers usually limit their focus to the parallelism that the available control constructs express easily and that the given architecture exploits efficiently. This approach produces programs that exhibit much less parallelism that exists in the application, and whose performance depends critically on the underlying hardware and software. We argue for an alternative approach based on control abstraction. Control abstraction is the process by which programmers define new control constructs, specifying constraints on statement ordering separately from an implementation of that ordering. With control abstraction programmers can define and use a rich variety of control constructs to represent an algorithm's potential parallelism. Since control abstraction separates the definition of a construct from its implementation, a construct may have several different implementations, each exploiting a different subset of the parallelism admitted by the construct. By selecting an implementation for each control construct using annotations, a programmer can vary the parallelism in a program to best exploit the underlying hardware without otherwise changing the source code. This approach produces programs that exhibit most of the potential parallelism in an algorithm, and whose performance can be tuned simply by choosing among the various implementations for the control constructs in use.

Original languageEnglish (US)
Pages (from-to)524-576
Number of pages53
JournalACM Transactions on Programming Languages and Systems (TOPLAS)
Issue number3
StatePublished - Jan 5 1994
Externally publishedYes


  • architectural adaptability
  • closures
  • control abstraction
  • data abstraction
  • early reply
  • multiprocessors
  • parallel programming languages
  • performance tuning

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'Parallel programming with control abstraction'. Together they form a unique fingerprint.

Cite this