Prototyping Parallel and Distributed Programs in Proteus

Abstract

Prototyping is an important technique in software development for early exploration and validation of requirements. When prototyping concurrent behavior, we must be able to embrace a wide spectrum of models used to construct parallel programs, reflecting a variety of underlying system architectures. In this paper we present Proteus, a language, suitable for prototyping parallel and distributed programs. Proteus starts with the high-level set-theoretic notations of SETL and REFINE. We then extend this base with the barrier-merge parallel construct, which partitions the variables used for communication in its shared memory model into shared and private sets. Each parallel process receives an independent copy of the private variables. These private copies are independently updated, and may be merged into the global state at specifiable barrier synchronization points: at these points a portion of the merged state may be reflected back into each private state. We envision a layered language structure to express the various programming models, such as communicating sequential processes and data-level parallelism, in terms of this common foundation. A common foundation also facilitates the prototyping of heterogeneous systems whose concurrent parts are programmed following different models.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Oct 01, 1990
Accession Number
ADA236597

Entities

People

  • Jan F. Prins
  • John Reif
  • Lars S. Nyland
  • Peter H. Mills
  • Robert A. Wagner

Organizations

  • University of North Carolina at Chapel Hill

Tags

Communities of Interest

  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Algorithms
  • Computations
  • Computer Programming
  • Computer Science
  • Computers
  • Construction
  • High Level Languages
  • Language
  • Parallel Computing
  • Parallel Processors
  • Product Prototyping
  • Programming Languages
  • Prototypes
  • Software Development
  • Software Prototyping
  • Specifications
  • Standards

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Database Systems and Applications
  • Mathematical Modeling and Probability Theory.