Parallel program design: a foundation
Parallel program design: a foundation
Interleaving set temporal logic
Theoretical Computer Science
Handbook of theoretical computer science (vol. B)
Applications of the “phase abstractions” for portable and scalable parallel programming
Languages, compilers and run-time environments for distributed memory machines
Using Partial-Order Methods in the Formal Validation of Industrial Concurrent Programs
IEEE Transactions on Software Engineering - Special issue: best papers of the 1996 international symposium on software testing and analysis ISSTA'96
Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing
Journal of the ACM (JACM)
Proceedings of the 3rd International Workshop on Distributed Algorithms
Action Systems and Action Refinement in the Development of Parallel Systems - An Algebraic Approach
CONCUR '91 Proceedings of the 2nd International Conference on Concurrency Theory
Hi-index | 0.01 |
This paper introduces DUALITY, a design model that provides a more structured style of parallel programming and refines causality from concurrency. We investigate semantic and syntactic transformations that support identifying the structure of a parallel program, as the basis for reducing the design complexity. The initial focus is on specification and correctness, then gradually adding architectural details and finally addressing efficiency. A parallel program is viewed as a Meta-Program -the result of causally composing an architecture-independent algorithm - the specification, with an architecture-dependent program -the mapping. This approach supports the derivation of efficient parallel implementations from program specifications. Consequently, transparent and architecture-independent specifications can be transformed into forms that match particular target architectures. Correctness of the implementation is inferred from correctness of the specification, by gradually imposing temporal and causal order and by transforming any property of the specification into a property of the parallel program. DUALITY relates data and process parallelism and aims to reuse design knowledge from sequential patterns. DUALITY is developed in the context of the UNITY formalism and the principle and algebraic laws of Communication Closed Layers (CCL), and illustrated through the algorithm of all-points shortest path.