A GPU-Based Application Framework Supporting Fast Discrete-Event Simulation

  • Authors:
  • Hyungwook Park;Paul A. Fishwick

  • Affiliations:
  • Department of Computer and Information Science and EngineeringUniversity of Florida Gainesville, FL 32611, USA;Department of Computer and Information Science and EngineeringUniversity of Florida Gainesville, FL 32611, USA

  • Venue:
  • Simulation
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

The graphics processing unit (GPU) has evolved into a flexible and powerful processor of relatively low cost, compared to processors used for other available parallel computing systems. The majority of studies using the GPU within the graphics and simulation communities have focused on the use of the GPU for models that are traditionally simulated using regular time increments, whether these increments are accomplished through the addition of a time delta (i.e., numerical integration) or event scheduling using the delta (i.e., discrete event approximations of continuous-time systems). These types of models have the property of being decomposable over a variable or parameter space. In prior studies, discrete event simulation has been characterized as being an inefficient application for the GPU primarily due to the inherent synchronicity of the GPU organization and an apparent mismatch between the classic event scheduling cycle and the GPU芒聙聶s basic functionality. However, we have found that irregular time advances of the sort common in discrete event models can be successfully mapped to a GPU, thus making it possible to execute discrete event systems on an inexpensive personal computer platform at speedups close to 10x. This speedup is achieved through the development of a special purpose code library we developed that uses an approximate time-based event scheduling approach. We present the design and implementation of this library, which is based on the compute unified device architecture (CUDA) general purpose parallel applications programming interface for the NVIDIA class of GPUs.