Prototyping Parallel and Distributed Programs in Proteus

reportActive / Technical Report | Accession Number: ADA236597 | Open PDF

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.

Security Markings

DOCUMENT & CONTEXTUAL SUMMARY

Distribution:
Approved For Public Release
Distribution Statement:
Approved For Public Release; Distribution Is Unlimited.

RECORD

Collection: TR
Identifying Numbers
Subject Terms