Incremental state saving in SPEEDES using C++

Optimistic parallel discrete-event simulation engines require a rollback mechanism to restore the state of a simulation object to an earlier time if its events are accidentally processed out of time order. Traditional approaches save the entire state of an object before its next event is processed so that its original state can be restored. However, this approach can very quickly use up all of a processor's available memory. In addition, the overhead for copying large amounts of memory can be quite high. Incremental state saving helps to overcome these problems by saving only the changes that an event makes to an object. This paper describes some reversible incremental state saving techniques (i.e., the Delta Exchange Method and the Rollback Queue Mechanism) that are used by the object-oriented C++ SPEEDES (Synchronous Parallel Environment for Emulation and Discrete-Event Simulation) operating system, The need for reversible incremental state saving is emphasized by a brief discussion on lazy cancellation techniques which require roll-forward as well as rollback support.

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

[2]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[3]  Jeff S. Steinman,et al.  SPEEDES - A multiple-synchronization environment for parallel discrete-event simulation , 1992 .

[4]  Peter L. Reiher,et al.  A critical path tool for parallel simulation performance optimization , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[5]  Ganesh Gopalakrishnan,et al.  Design and Evaluation of the Rollback Chip: Special Purpose Hardware for Time Warp , 1992, IEEE Trans. Computers.

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

[7]  Jeff S. Steinman,et al.  Breathing Time Warp , 1993, PADS '93.

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