Efficient optimistic parallel simulations using reverse computation

In optimistic parallel simulations, state-saving techniques have traditionally been used to realize rollback. In this article, we propose reverse computation as an alternative approach, and compare its execution performance against that of state-saving. Using compiler techniques, we describe an approach to automatically generate reversible computations, and to optimize them to reap the performance benefits of reverse computation transparently. For certain fine-grain models, such as queuing network models, we show that reverse computation can yield significant improvement in execution speed coupled with significant reduction in memory utilization, as compared to traditional state-saving. On sample models using reverse computation, we observe as much as a six-fold improvement in execution speed over traditional state-saving.

[1]  Charles H. Bennett,et al.  The thermodynamics of computation—a review , 1982 .

[2]  David Eppstein,et al.  A Heuristic Approach to Program Inversion , 1985, IJCAI.

[3]  George B. Leeman A formal approach to undo operations in programming languages , 1986, TOPL.

[4]  C. V. Eynden Elementary Number Theory , 1987 .

[5]  Richard M. Fujimoto,et al.  Time Warp on a Shared Memory Multiprocessor , 1989, ICPP.

[6]  Wei Chen,et al.  Program Inversion: More than Fun! , 1990, Sci. Comput. Program..

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

[8]  Wayne M. Loucks,et al.  On the Trade-off between Time and Space in Optimistic Parallel Discrete-Event Simulation , 1992 .

[9]  Henry G. Baker,et al.  NREVERSAL of Fortune - The Thermodynamics of Garbage Collection , 1992, IWMM.

[10]  Jeff S. Steinman Incremental state saving in SPEEDES using C++ , 1993, WSC '93.

[11]  Rok Sosic,et al.  History cache: hardware support for reverse execution , 1994, CARN.

[12]  Richard M. Fujimoto,et al.  GTW: a time warp system for shared memory multiprocessors , 1994, Proceedings of Winter Simulation Conference.

[13]  Christopher D. Carothers,et al.  A case study in simulating PCS networks using Time Warp , 1995, PADS.

[14]  Andreas Griewank,et al.  Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++ , 1996, TOMS.

[15]  J. Grimm,et al.  Optimal Time and Minimum Space-Time Product for Reversing a Certain Class of Programs , 1996 .

[16]  Fabian Gomes,et al.  Optimizing incremental state-saving and restoration , 1996 .

[17]  Richard M. Fujimoto,et al.  An efficiency prediction method for ATM multiplexers , 1996 .

[18]  Pierre L'Ecuyer,et al.  A random number generator based on the combination of four LCGs , 1997 .

[19]  Peter G. Bishop Using reversible computing to achieve fail-safety , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[20]  Takuji Nishimura,et al.  Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator , 1998, TOMC.

[21]  Krishnan Subramani,et al.  Formal verification and empirical analysis of rollback relaxation , 1998, J. Syst. Archit..

[22]  David M. Nicol,et al.  Nops: a conservative parallel simulation engine for TeD , 1998, Workshop on Parallel and Distributed Simulation.

[23]  Christopher D. Carothers,et al.  The effect of state-saving in optimistic simulation on a cache-coherent non-uniform memory access architecture , 1999, WSC '99.

[24]  John G. Cleary,et al.  Scheduling critical channels in conservative parallel discrete event simulation , 1999, Proceedings Thirteenth Workshop on Parallel and Distributed Simulation. PADS 99. (Cat. No.PR00155).

[25]  Rajib Mall,et al.  Reverse execution of programs , 1999, SIGP.

[26]  Richard M. Fujimoto,et al.  Source-code Transformations for Efficient Reversibility , 1999 .