Time-stamp generation for optimistic parallel computing

Optimistic execution techniques are widely used in the field of parallel discrete event simulation. In this paper, we show that optimistic execution can also be used to parallelize program control structures. We discuss the requirements for handling unbounded constructs and demonstrate the need for a flexible time-stamp allocation scheme. We present a scheme using variable-length time-stamps which allows an arbitrary number of time-stamps to be generated between any pair of existing time-stamps. The ordering relation defined for these time-stamps is similar to that for fractional numbers: for two consecutive numbers of a given length it is always possible to generate a number whose value falls between them. Optimizations which improve the efficiency of time-stamp allocation for typical program structures are presented, together with an analysis of the cost. We show that the size of time-stamps is manageable even for programs with large, complex, control structures. Finally, we give an example of the use of time-stamps in parallelizing a simple control structure.<<ETX>>

[1]  Adam Back,et al.  General Purpose Optimistic Parallel Computing , 1994 .

[2]  James H. Patterson,et al.  Portable Programs for Parallel Processors , 1987 .

[3]  Richard M. Fujimoto,et al.  Parallel discrete event simulation , 1990, CACM.

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

[5]  Stephen John Turner,et al.  PORTABILITY AND PARALLELISM WITH "LIGHTWEIGHT p4 , 1993 .

[6]  Stephen John Turner,et al.  An Approach to the Run-Time Monitoring of Parallel Programs , 1994, Comput. J..

[7]  David R. Jefferson,et al.  Virtual time , 1985, ICPP.

[8]  Dennis Gannon,et al.  Sage++: An Object-Oriented Toolkit and Class Library for Building Fortran and C++ Restructuring Tool , 1994 .

[9]  W. H. Mac Williams Keynote address , 2006, AIEE-IRE '51.

[10]  Colin J. Fidge,et al.  Logical time in distributed computing systems , 1991, Computer.

[11]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[12]  Stephen John Turner,et al.  Distributed Simulation with a Transputer Version of the Time Warp Operating System , 1994 .

[13]  Wentong Cai,et al.  The “logical clocks” approach to the visualization of parallel programs , 1993 .

[14]  K. Mani Chandy,et al.  Distributed Simulation: A Case Study in Design and Verification of Distributed Programs , 1979, IEEE Transactions on Software Engineering.

[15]  Colin J. Fidge,et al.  Reproducible Tests in CSP , 1987, Aust. Comput. J..

[16]  Mike Livesey Distributed Varimistic Concurrency Control in a Persistent Object Store , 1990, POS.

[17]  David F. Bacon,et al.  Optimistic parallelization of communicating sequential processes , 1991, PPOPP '91.