Results 1 -
2 of
2
A Deterministic Notation for Cooperating Processes
- Preprint MCS-P346-0193, Mathematics and Computer Science Division, Argonne National Laboratory, Argonne, Ill
, 1993
"... This paper proposes extensions of sequential programming languages for parallel programming that have the following features: 1. Dynamic Structures The process structure is dynamic: Processes and variables can be created and deleted. 2. Paradigm Integration The programming notation allows shared mem ..."
Abstract
-
Cited by 9 (3 self)
- Add to MetaCart
This paper proposes extensions of sequential programming languages for parallel programming that have the following features: 1. Dynamic Structures The process structure is dynamic: Processes and variables can be created and deleted. 2. Paradigm Integration The programming notation allows shared memory and message passing. 3. Determinism Demonstrating that a program is deterministic --- all executions with the same input produce the same output --- is straightforward. A program can be written so that the compiler can verify that the program is deterministic. Nondeterministic constructs can be introduced in a sequence of refinement steps to obtain greater efficiency if required. The ideas have been incorporated in an extension of Fortran, but the underlying sequential imperative language is not central to the ideas described here. Keywords: parallel programming languages, determinism, functional programming, multicomputers, debugging Supported by NSF Center for Research in Parallel ...
Prototyping N-body Simulation in Proteus
, 1992
"... This paper explores the use of Proteus, an architecture-independent language suitable for prototyping parallel and distributed programs. Proteus is a high-level imperative notation based on sets and sequences with a single construct for the parallel composition of processes communicating through sha ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
This paper explores the use of Proteus, an architecture-independent language suitable for prototyping parallel and distributed programs. Proteus is a high-level imperative notation based on sets and sequences with a single construct for the parallel composition of processes communicating through shared memory. Several different parallel algorithms for N-body simulation are presented in Proteus, illustrating how Proteus provides a common foundation for expressing the various parallel programming models. This common foundation allows prototype parallel programs to be tested and evolved without the use of machine-specific languages. To transform prototypes to implementations on specific architectures, program refinement techniques are utilized. Refinement strategies are illustrated that target broad-spectrum parallel intermediate languages, and their viability is demonstrated by refining an N-body algorithm to data-parallel CVL code.

