Pipes: Linguistic Support for Ordered Asynchronous Invocations

Abstract

We describe pipes, a new linguistic mechanism for sequences of ordered asynchronous procedure calls in multiprocessor systems. Pipes allow a sequence of remote invocations to be performed in order, but asynchronously with respect to the calling thread. Using pipes results in programs that are easier to understand and debug than those with explicit synchronization between asynchronous invocations. The semantics of pipes make no assumptions about the underlying architecture, which enhances code portability. However, the implementation of pipes by the language compiler can be optimized so as to take advantage of any underlying message ordering a particular architecture may provide. Pipes also provide application-transparent flow control for asynchronous invocations and are able to throttle invocations from multiple calling threads. We present four implementations of pipes and show that the performance and space overheads associated with pipes are low.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Apr 01, 1992
Accession Number
ADA256873

Entities

People

  • Adrian Colbrook
  • Eric A. Brewer
  • Paul Wang
  • William E. Weihl
  • Wilson C. Hsieh

Organizations

  • Massachusetts Institute of Technology

Tags

Communities of Interest

  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Application Software
  • Compilers
  • Computer Programming
  • Computer Science
  • Computers
  • Consumers
  • Dictionaries
  • Flow
  • Guarantees
  • Hypervelocity Flow
  • Language
  • Lists (Data Structures)
  • Machines
  • Massachusetts
  • Multiprocessors
  • Object Oriented Programming
  • Programming Languages

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Parallel and Distributed Computing.

Technology Areas

  • Space
  • Space - Hall-Effect Thruster