Recent work toward the development of extremely fast simulation kernels involved comparison of optimistic and conservative synchronization schemes for several large realistic network scenarios. This study compared the performance of two parallel kernels, the WarpKit optimistic kernel, and the WaiKit conservative kernel. The base for this comparison is a fast central-event-list sequential kernel, CelKit.
Since the WarpKit - WaiKit study we have developed a new conservative synchronization scheme called critical channel traversing (CCT) which has been implemented in the new TasKit kernel. TasKit shows breakthrough performance, both for sequential and for parallel execution on shared memory platforms.
The language that we use for writing simulation applications is SimKit. Two versions of SimKit are available, a Java version and a C++ version. The C++ version is currently supported on all four kernels, i.e., WarpKit, WaiKit, TasKit and CelKit. At present, only a sequential version of Java is available.
SimKit is an object-oriented based library for discrete-event simulation. A model is described in terms of objects called logical processes (LPs). Each LP can communicate with other LPs only via messages (that is, they can share no writable state). Communication is via time-stamped messages which execute an event at the receive-time of the message. The network simulation work is led by the University of Calgary team .