Logic of global synchrony

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.

[1]  William F. McColl,et al.  Scalability, portability and predictability: The BSP approach to parallel programming , 1996, Future Gener. Comput. Syst..

[2]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[3]  Leslie G. Valiant,et al.  A bridging model for parallel computation , 1990, CACM.

[4]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[5]  Prakash Panangaden,et al.  The semantic foundations of concurrent constraint programming , 1991, POPL '91.

[6]  Paul R. Cohen,et al.  Robot Baby 2001 , 2001, Discovery Science.

[7]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[8]  Cliff B. Jones,et al.  Specification and Design of (Parallel) Programs , 1983, IFIP Congress.

[9]  Dorota H. Kieronska,et al.  Formal Specification of Parallel SIMD Execution , 1996, Theor. Comput. Sci..

[10]  Richard Spencer-Smith,et al.  Modal Logic , 2007 .

[11]  Yifeng Chen A fixpoint theory for non-monotonic parallelism , 2003 .

[12]  Yifeng Chen,et al.  A fixpoint theory for non-monotonic parallelism , 2002, Theor. Comput. Sci..

[13]  Jan A. Bergstra,et al.  Algebra of Communicating Processes with Abstraction , 1985, Theor. Comput. Sci..

[14]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[15]  Jim Davies,et al.  A Brief History of Timed CSP , 1995, Theor. Comput. Sci..

[16]  Rob H. Bisseling,et al.  A simple and efficient parallel FFT algorithm using the BSP model , 2001, Parallel Comput..

[17]  Torsten Suel,et al.  BSPlib: The BSP programming library , 1998, Parallel Comput..

[18]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[19]  Ian Foster,et al.  Designing and building parallel programs , 1994 .

[20]  Jeff W. Sanders,et al.  WEAKEST SPECIFUNCTIONS FOR BSP , 2001 .

[21]  Greg Nelson,et al.  A generalization of Dijkstra's calculus , 1989, ACM Trans. Program. Lang. Syst..

[22]  Yifeng Chen How to Write a Healthiness Condition , 2000, IFM.

[23]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[24]  Susan Owicki,et al.  An axiomatic proof technique for parallel programs I , 1976, Acta Informatica.

[25]  Yifeng Chen,et al.  Logic of Global Synchrony , 2001, CONCUR.

[26]  Yifeng Chen Generic Composition , 2002, Formal Aspects of Computing.

[27]  Martti Penttonen,et al.  Work-Optimal Simulation of PRAM Models on Meshes , 1995, Nord. J. Comput..

[28]  P. Cousot,et al.  Constructive versions of tarski's fixed point theorems , 1979 .

[29]  Ian T. Foster,et al.  Designing and building parallel programs - concepts and tools for parallel software engineering , 1995 .

[30]  Yifeng Chen Formal methods for global synchrony , 2001 .

[31]  David B. Skillicorn Building BSP Programs Using the Refinement Calculus , 1998, IPPS/SPDP Workshops.

[32]  Steven Fortune,et al.  Parallelism in random access machines , 1978, STOC.

[33]  K. Mani Chandy Parallel program design , 1989 .

[34]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[35]  Wolfgang J. Paul,et al.  On the cost–effectiveness of PRAMs , 1999, Acta Informatica.