Towards a Fully Non-blocking Share-everything PDES Platform
Mauro Ianni, Romolo Marotta, Alessandro Pellegrini, and Francesco Quaglia
Published in: Proceedings of the 21st IEEE/ACM International Symposium on Distributed Simulation and Real Time Applications
Download PDF
Abstract:
Shared-memory multi-core platforms are changing the nature of Parallel Discrete Event Simulation (PDES) because of the possibility to fully share the workload of events to be processed across threads. In this context, one rising PDES paradigm - referred to as share-everything PDES - is no longer based on the concept of (temporary) biding of simulation objects to worker threads. Rather, each worker threads can - at any time - pick from a fully shared event pool an event to process which can be destined to whatever simulation object. While attention has been posed on the design of concurrent shared pools, allowing non-blocking parallel operations, the scenario where two (or more) threads pick events destined to the same simulation object still lacks adequate synchronization support. In fact, these events are currently sequentialized and processed in a critical section touching the simulation object state, thus leading threads to mutually block each other. In this article we present the design of a share-everything speculative PDES engine that prevents mutual thread blocks because of the access to a same object state. In our design, the non-blocking property is seen as a vertical attribute of the engine (not only of the event pool). This vertical view demands for innovative event-dispatching schemes and, at the same time, innovative interactions with (and management of) the fully-shared event pool, which are features that we embed in our innovative design.
BibTeX Entry:
author = {Ianni, Mauro and Marotta, Romolo and Pellegrini, Alessandro and Quaglia, Francesco},
booktitle = {Proceedings of the 21st IEEE/ACM International Symposium on Distributed Simulation and Real Time Applications},
title = {Towards a Fully Non-blocking Share-everything PDES Platform},
year = {2017},
month = oct,
pages = {25--32},
publisher = {IEEE Computer Society},
series = {DS-RT},
doi = {10.1109/DISTRA.2017.8167663},
location = {Rome, Italy},
name = {ds-rt17c}
}