Abstract

Computer simulation is a valuable tool for the design and analysis of complex systems. However, the simulation of large complex systems such as, telecommunication, traffic, manufacturing, combat, training, ecological, engineering, and computer systems, can require massive resources in terms of processing times and memory. The parallel execution of such discrete event simulations offers the potential of substantially reducing this processing time. Optimistic synchronization has been proposed to exploit the inherent parallelism within systems and has been shown to be capable of impressive speedup through parallel execution. Two serious problems with optimistic methods have yet to be adequately resolved. The first is the saving, or logging, of model state information during forward execution, so that rollback to a previous state can be accomplished. The second problem is to solve the first in a way which is transparent to the programmer, i.e. that doesn't substantially complicate model development. This thesis examines these two key related problems, efficient state logging and transparency. A compiler based design for an incremental state saving and restoration mechanism is presented that addresses both of these problems. This design was evaluated using a real world telecommunication simulation that was developed over an 18 month period by an 8 person team who had little experience in parallel discrete event simulation. State logging overheads were demonstrated to be less than 15% of the forward computation cost for this telecommunication benchmark. The mechanism is also completely transparent to the simulation programmer. It is further argued that the compiler design not only solves the transparency problem of logging state in optimistic parallel discrete event simulation, but is also applicable to more general computation that requires support for rollback. These more general applications include: editors, fault-tolerant systems, transaction based systems, playback debuggers, versioning systems, and logic programming systems.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call