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.
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