Towards Symmetric Multi-threaded Optimistic Simulation Kernels

Roberto Vitali, Alessandro Pellegrini, and Francesco Quaglia


Published in: Proceedings of the 26th International Workshop on Principles of Advanced and Distributed Simulation
pdf Download PDF

Abstract:
In this article we address the reshuffle of the design of optimistic simulation kernels in order to fit multi-core/multi-processor machines. This is done by providing a reference optimistic simulation architecture based on the symmetric multi-threaded paradigm, where each simulation kernel instance is allowed to run a dynamically changing set of worker threads that share the whole load of LPs hosted by that kernel, and that can run both application-level event handlers and kernel-level housekeeping tasks. With this organization, CPU-cores can be dynamically reassigned to the different kernels depending on fluctuations of the workload, so to maximize productivity in an orthogonal manner with respect to traditional load balancing schemes, typically employed in the context of single-threaded simulation kernels. In order to optimize efficiency and reduce wait-for-lock-release phases while synchronizing worker threads running in kernel mode, we borrow from Operating Systems’ theory by readapting the top/bottom-halves paradigm to the design of optimistic simulation systems. We also present a real implementation of our multi-threaded architecture within the ROme OpTimistic Simulator (ROOT-Sim), namely an open-source C-based simulation platform implemented according to the PDES paradigm and the optimistic synchronization approach. Experimental results for an assessment of the validity of our proposal are presented as well.

BibTeX Entry:

@inproceedings{Vit12b,
author = {Vitali, Roberto and Pellegrini, Alessandro and Quaglia, Francesco},
booktitle = {Proceedings of the 26th International Workshop on Principles of Advanced and Distributed Simulation},
title = {Towards Symmetric Multi-threaded Optimistic Simulation Kernels},
year = {2012},
month = aug,
pages = {211--220},
publisher = {IEEE Computer Society},
series = {PADS},
doi = {10.1109/PADS.2012.46},
location = {Zhangjiajie, China}
}