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.
Ianni, M., Marotta, R., Pellegrini, A., Quaglia, F. (2017). Towards a Fully Non-blocking Share-everything PDES Platform. In IEEE/ACM 21st International Symposium on Distributed Simulation and Real Time Applications (DS-RT) (pp.25-32). 345 E 47TH ST, NEW YORK, NY 10017 USA : IEEE [10.1109/DISTRA.2017.8167663].
Towards a Fully Non-blocking Share-everything PDES Platform
Ianni, M;Marotta, R;Pellegrini, A;Quaglia, F
2017-10-01
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.File | Dimensione | Formato | |
---|---|---|---|
Ian17c.pdf
solo utenti autorizzati
Tipologia:
Documento in Post-print
Licenza:
Copyright dell'editore
Dimensione
773.33 kB
Formato
Adobe PDF
|
773.33 kB | Adobe PDF | Visualizza/Apri Richiedi una copia |
I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.