Abstract
Modern graphics processing units (GPUs) offer much more computational power than recent CPUs by providing a vast number of simple, data-parallel, multithreaded cores. In this study, we focus on the use of a GPU to perform parallel discrete-event simulation. Our approach is to use a modified service time distribution function to allow more independent events to be processed in parallel. The implementation issues and alternative strategies will be discussed in detail. We describe and compare our experience and results in using Thrust and CUB, two open-source parallel algorithms libraries which resemble the C\({++}\) Standard Template Library, to build our tool. The experimental results show that our implementation can be two orders of magnitude faster than the sequential simulation for large-scale simulation models.















Similar content being viewed by others
References
Baezner D, Lomow G, Unger BW (1990) Sim++: the transition to distributed simulation. In: Proceedings of the SCS Multiconference on Distributed Simulatio, pp 211–218
Chandy KM, Misra J (1979) Distributed simulation: a case study in design and verification of distributed programs. IEEE Trans Softw Eng 5(5):440–452
Evans JB (1988) Structures of discrete event simulation. Ellis Horwood Limited, Market Cross House
Fujimoto R (1990) Parallel discrete event simulation. CACM 33(10):30–53
Harris M, Garland M (2011) Optimizing parallel prefix operations for the fermi architecture. In: Chapter 3 of the book “GPU Computing Gems—Jade Edition”. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA
Hoberock J, Bell N (2010) Thrust: a parallel template library. https://code.google.com/p/thrust/. Accessed 19 Mar 2017
Jefferson D (1985) Virtual time. ACM Trans Program Lang Syst 7:404–425
Kirk DB, Hwu WMW (2010) Programming massively parallel processors: a hands-on approach, 1st edn. Morgan Kaufmann Publishers Inc., San Francisco
Lo SH, Lee CR, Chung IH, Chung YC (2013) Optimizing pairwise box intersection checking on GPUs for large-scale simulations. ACM Trans Model Comput Simul 23(3):19:1–19:22
Luitjens J Faster parallel reductions on Kepler. https://devblogs.nvidia.com/parallelforall/faster-parallel-reductions-kepler/. Accessed 19 Mar 2017
Mascarenhas E, Knop F, Pasquini R, Rego V (1998) Minimum cost adaptive synchronization: experiments with the parasol system. ACM Trans Model Comput Simul 8(4):401–430
Nobile MS, Cazzaniga P, Besozzi D, Mauri G (2014) GPU-accelerated simulations of mass-action kinetics models with cupSODA. J Supercomput 69:17–24
NVIDIA: CUB. https://nvlabs.github.io/cub/. Accessed 19 Mar 2017
NVIDIA (2012) CUDA Programming guide version 4.2
Park H, Fishwick PA (2010) A GPU-based application framework supporting fast discrete-event simulation. Simulation 86(10):613–628
Park H, Fishwick PA (2011) An analysis of queuing network simulation using GPU-based hardware acceleration. ACM Trans Model Comput Simul 21(3):18
Perumalla KS (2006) Discrete-event execution alternatives on general purpose graphical processing units (gpgpus). In: Proceedings of the 20th Workshop on Principles of Advanced and Distributed Simulation, PADS ’06, Washington, DC, USA, pp 74–81
Rango AD, Macr M, D’Ambrosio D, Spataro W (2015) Accelerating lava flows simulations with gpgpu and opencl. In: Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA), pp 581–588
Rego V, Sang J, Yu C (2016) A fast hybrid approach for stream compaction on GPUs. In: Proceedings of the International Workshop on GPU Computing and Applications
Rego V, Sunderam VS (1992) Experiments in concurrent stochastic simulation: the eclipse paradigm. J Parallel Distrib Comput 14(1):66–84
Sang J, Mascarenhas E, Rego V (1996) Mobile-process based parallel simulation. J Parallel Distrib Comput 33:12–23
Schwetman HD (1978) Hybrid simulation models of computer systems. Commun ACM 21:718–723
Sunderam VS, Rego V (1991) Eclipse: a system for high performance concurrent simulation. Softw Pract Exp 21(11):1189–1219
West J, Mullarney A (1988) ModSim: a language for distributed simulation. In: Proceedings of SCS Multiconference on Distributed Simulation
Woods RL, Lawrence KL (1997) Modeling and simulation of dynamic systems. Prentice-Hall, Upper Saddle River
Wyllie JC (1979) The complexity of parallel computations. Technical report, Ph.D. thesis, Cornell University, Ithaca, NY, USA
Xu Z, Bagrodia R (2007) GPU-accelerated evaluation platform for high fidelity network modeling. In: PADS, pp 131–140
Acknowledgements
This research was supported in part by a Fulbright Senior Research Scholarship and by an allocation of computing time from the Ohio Supercomputer Center.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Sang, J., Lee, CR., Rego, V. et al. Experiences with implementing parallel discrete-event simulation on GPU. J Supercomput 75, 4132–4149 (2019). https://doi.org/10.1007/s11227-018-2254-4
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-018-2254-4