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

Abstract:
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:

@inproceedings{Mar24,
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,functional,reproduced}
}