Implementing the Multi-agent spatial simulation (MASS) library on the Graphics Processor Unit
Abstract
The current frameworks for Agent-Based Models (ABMs) are mostly serial, which causes a fundamental limitation in their execution . ABMs by nature require a large population of agents in order to show consistent patterns in the model, for example, epidemic modeling, airplane flight patterns, and crime rate analysis, all requiring millions of agents. To put this in perspective, there are 50,000 flights per day in the USA (18.25 million per year) while New York City has a population of over 18 million people as of 2011. This research effort implements a multi-agents spatial simulation library (MASS library) on the graphics processor unit (GPU) to achieve: 1) speedup by parallelization on the GPU and 2) implementing a general agent-based simulator on the GPU. Results obtained from implementing a wave simulation of 4 million array elements on the GPU showed a 15 times speedup over the corresponding serial implementation while the CPU-only implementation (with the conventional multithreading) flattens at a 2 to 3 times speedup. This research explores other applications that use the MASS library and investigate their performance gains when compared to the same applications implemented using the CPU version of the library implemented in C++. Algorithms for efficient agent-to-agent communication and agent migration are proposed and evaluated as compared to existing algorithms.