Time-Sharing Time Warp via Lightweight Operating System Support

Alessandro Pellegrini and Francesco Quaglia

Published in: Proceedings of the 2015 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation
pdf Download PDF

The order according to which the different tasks are carried out within a Time Warp platform has a direct impact on performance, given that event processing is speculative, thus being subject to the possibility of being rolled-back. It is typically recognized that not-yet-executed events having lower timestamps should be given higher CPU-schedule priority, since this contributes to keep low the amount of rollbacks. However, common Time Warp platforms usually execute events as atomic actions. Hence control is bounced back to the underlying simulation platform only at the end of the current event processing routine. In other words, CPU-scheduling of events resembles classical batch-multitasking scheduling, which is recognized not to promptly react to variations of the priority of pending tasks (e.g. associated with the injection of new events in the system). In this article we present the design and implementation of a time-sharing Time Warp platform, to be run on multi-core machines, where the platform-level software is allowed to take back control on a periodical basis (with fine grain period), and to possibly preempt any ongoing event processing activity in favor of dispatching (along the same thread) any other event that is revealed to have higher priority. Our proposal is based on an ad-hoc kernel module for Linux, which implements a fine grain timer-interrupt mechanism with lightweight management, which is fully integrated with the modern top/bottom-half timer-interrupt Linux architecture, and which does not induce any bias in terms of relative CPU-usage planning across Time Warp vs non-Time Warp threads running on the machine. Our time-sharing architecture has been integrated within the open source ROOT-Sim optimistic simulation package, and we also report some experimental data for an assessment of our proposal.

BibTeX Entry:

author = {Pellegrini, Alessandro and Quaglia, Francesco},
booktitle = {Proceedings of the 2015 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation},
title = {Time-Sharing Time Warp via Lightweight Operating System Support},
year = {2015},
month = jun,
pages = {47--58},
publisher = {ACM},
series = {PADS},
doi = {10.1145/2769458.2769478},
location = {London, UK},
name = {pads15t}