Efficient Neighbor Searching for Agent-Based Simulation on GPU

This paper introduces a strategy to accelerate neighbor searching in agent-based simulations on GPU platforms. Because of their autonomous nature, agents can be processed by threads concurrently on GPU, and the overall simulation can be accelerated consequently. Each agent will simultaneously carry out a sense-think-act cycle in every time step. The neighbor searching is a crucial part in the sensing stage. Detecting and accessing neighbors is a memory intensive task and often becomes the major time consumer in an agent-based simulation. Our contribution, an enhanced neighbor sharing strategy, greatly speeds up this procedure when comparing with CPU implementations. The strategy is developed from a global-memory-only implementation, and then gradually improved by efficiently utilizing the much faster shared memory. In our case studies, speedups of 89.08 and 11.51 are obtained on an NVIDIA Tesla K20 GPU compared with the sequential implementation and OpenMP parallel implementation respectively on an Intel Xeon E5-2670 CPU.

[1]  Heinz Koeppl,et al.  Parallelized agent-based simulation on CPU and graphics hardware for spatial and stochastic models in biology , 2011, CMSB.

[2]  Kenneth A. Hawick,et al.  Regular Lattice and Small-World Spin Model Simulations Using CUDA and GPUs , 2010, International Journal of Parallel Programming.

[3]  Robert A. Dalrymple,et al.  SPH on GPU with CUDA , 2010 .

[4]  Dinesh Manocha,et al.  Reciprocal Velocity Obstacles for real-time multi-agent navigation , 2008, 2008 IEEE International Conference on Robotics and Automation.

[5]  Craig W. Reynolds Flocks, herds, and schools: a distributed behavioral model , 1987, SIGGRAPH.

[6]  M. Steinberger,et al.  ScatterAlloc: Massively parallel dynamic memory allocation for the GPU , 2012, 2012 Innovative Parallel Computing (InPar).

[7]  Avi Bleiweiss,et al.  Multi Agent Navigation on the GPU , 2011 .

[8]  Vittorio Scarano,et al.  An Efficient GPU Implementation for Large Scale Individual-Based Simulation of Collective Behavior , 2009, 2009 International Workshop on High Performance Computational Systems Biology.

[9]  Simon Green,et al.  Particle Simulation using CUDA , 2010 .

[10]  Michael Goesele,et al.  Fast dynamic memory allocator for massively parallel architectures , 2013, GPGPU@ASPLOS.

[11]  Kalyan S. Perumalla,et al.  Data parallel execution challenges and runtime performance of agent simulations on GPUs , 2008, SpringSim '08.

[12]  Helbing,et al.  Social force model for pedestrian dynamics. , 1995, Physical review. E, Statistical physics, plasmas, fluids, and related interdisciplinary topics.