Communicating sequential processes
Communicating sequential processes
Parallel program design: a foundation
Parallel program design: a foundation
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
A bridging model for parallel computation
Communications of the ACM
The semantic foundations of concurrent constraint programming
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formal specification of parallel SIMD execution
Theoretical Computer Science - Special issue on theoretical computer science in Australia and New Zealand
Scalability, portability and predictability: the BSP approach to parallel programming
Future Generation Computer Systems - Special issue: parallel computing applications
BSPlib: The BSP programming library
Parallel Computing
Modal logic
Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering
Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering
Communication and Concurrency
A Discipline of Programming
Work-optimal simulation of PRAM models on meshes
Nordic Journal of Computing
Parallelism in random access machines
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
A fixpoint theory for non-monotonic parallelism
Theoretical Computer Science
Inheriting laws for processes with states
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
Large-scale FFT on GPU clusters
Proceedings of the 24th ACM International Conference on Supercomputing
BSP-WHY: an intermediate language for deductive verification of BSP programs
Proceedings of the fourth international workshop on High-level parallel programming and applications
Abstraction of object graphs in program verification
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Generating c code from LOGS specifications
ICTAC'05 Proceedings of the Second international conference on Theoretical Aspects of Computing
Algebraic program semantics for supercomputing
Theories of Programming and Formal Methods
Hi-index | 0.00 |
An intermediate-level specification formalism (i.e., specification language supported by laws and a semantic model), Logs, is presented for PRAM and BSP styles of parallel programming. It extends pre-post sequential semantics to reveal states at points of global synchronization. The result is an integration of the pre-post and reactive-process styles of specification. The language consists of only six commands from which other useful commands can be derived. Parallel composition is simply logical conjunction and hence compositional. A simple predicative semantics and a complete set of algebraic laws are presented. Novel ingredients include the separation, in our reactive context, of the processes for nontermination and for abortion which coincide in standard programming models; the use of partitions, combining the terminating behavior of one program with the nonterminating behavior of another; and a fixpoint operator, the partitioned fixpoint. Our semantics benefits from the recent "healthiness function" approach for predicative semantics. Use of Logs, along with the laws for reasoning about it, is demonstrated on two problems: matrix multiplication (a terminating numerical computation) and the dining philosophers (a reactive computation). The style of reasoning is so close to programming practice that direct transformation from Logs specifications to real PRAM and BSP programs becomes possible.