Automatic incremental state saving

We present an Incremental State Saving technique for which the state saving calls are inserted automatically by directly editing the application executable. This method has the advantage of being easy to use since it is fully automatic, and has good performance since it adds overhead only where state is being modified. Since the editing happens on executable code, the method is independent of the compiler, and allows third party libraries to be used. None of the previous incremental state saving methods have both of these features. We find that it is beneficial to use Automatic Incremental State Saving if less than 15% of the state is modified in each event as compared to copy state saving. This technique allows us to efficiently parallelize existing simulations, and makes Time Warp more accessible to non-Time Warp experts.

[1]  Ganesh Gopalakrishnan,et al.  Design and performance of special purpose hardware for time warp , 1988, ISCA '88.

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

[3]  R. M. Fujimoto,et al.  Parallel discrete event simulation , 1989, WSC '89.

[4]  Brian Randell System Structure for Software Fault Tolerance , 1975, IEEE Trans. Software Eng..

[5]  James R. Larus,et al.  Efficient program tracing , 1993, Computer.

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

[7]  Erol Gelenbe,et al.  On the Optimum Checkpoint Interval , 1979, JACM.

[8]  Christopher D. Carothers,et al.  Distributed simulation of large-scale PCS networks , 1994, Proceedings of International Workshop on Modeling, Analysis and Simulation of Computer and Telecommunication Systems.

[9]  Philip A. Wilsey,et al.  An analytical comparison of periodic checkpointing and incremental state saving , 1993, PADS '93.

[10]  James R. Larus,et al.  EEL: machine-independent executable editing , 1995, PLDI '95.

[11]  David L. Russell,et al.  State Restoration in Systems of Communicating Processes , 1980, IEEE Transactions on Software Engineering.

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

[13]  Fabian Gomes,et al.  Cost of state saving & rollback , 1994, PADS '94.

[14]  John G. Cleary,et al.  An external state management system for optimistic parallel simulation , 1993, WSC '93.

[15]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

[16]  Yi-Bing Lin,et al.  Selecting the checkpoint interval in time warp simulation , 1993, PADS '93.

[17]  RICHARD KOO,et al.  Checkpointing and Rollback-Recovery for Distributed Systems , 1986, IEEE Transactions on Software Engineering.