A Symmetric Multi-threaded Architecture for Load-sharing in Multi-core Optimistic Simulations

Roberto Vitali, Alessandro Pellegrini, and Francesco Quaglia



pdf Download PDF

Abstract:
Parallel Discrete Event Simulation (PDES) is based on a simulation model partitioned into distinct Logical Processes (LPs) which are allowed to execute simulation events concurrently.
We present here an innovative approach to load sharing on multi-core/multiprocessor machines for the optimistic PDES paradigm, where LPs can speculatively process simulation events with no a-priori verification of causal consistency, and violations (if any) are recovered via rollback techniques. Each simulation kernel instance, in charge of hosting and executing a specific set of LPs, runs a set of symmetric worker threads, which can be dynamically activated/deactivated on the basis of a distributed algorithm, which relies in turn on an analytical model providing indications on how to reassign processor/core usage across the kernels in order to efficiently handle the simulation workload. In order to optimize efficiency and reduce lock-release phases used to synchronize the threads when running in kernel mode, we propose to borrow from operating systems theory and readapt the top/bottom-halves paradigm to the design of load-sharing oriented optimistic simulation systems. We also present a real implementation of the our load sharing 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 our proposal are presented as well.

BibTeX Entry:

@techreport{Vit12f,
author = {Vitali, Roberto and Pellegrini, Alessandro and Quaglia, Francesco},
institution = {Sapienza, University of ROme},
title = {A Symmetric Multi-threaded Architecture for Load-sharing in Multi-core Optimistic Simulations},
year = {2012},
month = jul,
note = {Workshop di Informatica Quantitativa},
location = {Lucca, Italy},
series = {InfQ}
}