In 1995, researchers at the University of Cincinnati released WARPED as a publically available discrete event simulation kernel. The goal of the project was to provide a system for research and analysis of the Time Warp distributed simulation synchronization protocol. WARPED was to be efficient, maintainable, flexible, configurable, and portable. It was written in C++ and used the Message Passing Interface (MPI) standard
to accommodate as many parallel platforms as possible. As the software implementation was expanded with additional capabilities and optimizations, several problems with the original design became apparent. The primary problem was that the configuration of various Time Warp optimizations could only be made at compile time. As simulations increased in size and complexity, this compile time became a significant burden. Another problem, related to the first, was that WARPED could not be used and distributed as a shared library due to the compile time configuration requirement.
This thesis discusses the design and implementation of the Time Warp mechanism in a new version of WARPED, now called the WARPED v2.x series (the initial series is now called the WARPED v1.x series). The primary goal of WARPED v2.x is to provide run time configuration of the system. The goals of the previous version carry over to the new version. Several simulation models are also included in the initial release of the WARPED v2.0 distribution for use in analyzing the system. In this initial version of WARPED v2.x, the system includes sequential and parallel simulation kernels that can be configured at run time for use with any of the simulation models compliant with the WARPED API. The parallel simulation kernel uses the Time Warp distributed synchronization mechanism and includes several Time Warp optimizations, including: various cancellation strategies, fossil collection algorithms, GVT estimation algorithms, state saving algorithms, event list structures, scheduling algorithms, and support for multiple communication protocols (all organized to support run time configuration/selection). This thesis presents the issues and difficulties of implementing the optimizations along with the solutions used. The optimizations are analyzed using performance data and system profiling. With the available simulations and extensible design, WARPED v2.0 can be used to explore new optimizations for the Time Warp mechanism.