Follow the Leader: Alternating CPU/GPU Computations in PDES

Romolo Marotta, Alessandro Pellegrini, and Philipp Andelfinger

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

Despite the successes of graphics processing units (GPUs) in accelerating simulations in several research fields, their use is largely restricted to domain-specific workloads that consistently offer the large degree of inherent parallelism and computational intensity at which GPUs excel.
When targeting generic discrete-event simulations, whose dynamics can vary wildly over time, a static choice between a GPU-based and traditional CPU-based execution is likely to be suboptimal.
Here, we explore a parallel discrete-event (PDES) execution scheme for CPU-GPU platforms that aims to approximate an optimal dynamic device choice.
Starting from an intermediate model state, a current "leader" device running the simulation is periodically challenged by a brief concurrent run on another device starting from an intermediate model state.
Based on the gathered performance measurements, a forecasting scheme determines the leader for the next period.
The execution time and power consumption of this scheme hinge on 1) an efficient mechanism for providing the "follower" device with a consistent model state, and 2) robust performance forecasting to justify the device choices.
We present these building blocks, their implementation combining the existing CPU and GPU simulators ROOT-Sim and GPUTW, and measurement results demonstrating substantially reduced execution time without increasing energy consumption over a static device choice.

BibTeX Entry:

author = {Marotta, Romolo and Pellegrini, Alessandro and Andelfinger, Philipp},
booktitle = {Proceedings of the 2024 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation},
title = {Follow the Leader: Alternating CPU/GPU Computations in PDES},
year = {2024},
month = jun,
publisher = {ACM},
series = {SIGSIM-PADS '24},
doi = {10.1145/3615979.3656056},
location = {Atlanta, GA, USA},
badges = {available,reusable,reproduced},
note = {To appear}