Abstract
GPU-based parallelization of agent-based modeling (ABM) has been highlighted for the last decade to address its computational needs for scalable and long-run simulations in practical use. From the software productivity viewpoint, model designers would prefer general ABM frameworks for GPU parallelization. However, having transited from single-node or cluster-computing platforms to GPUs, most general ABM frameworks maintain their APIs at the script level, delegate only a limited number of agent functions to GPUs, and copy agent data between host and device memory for each function call, which cannot ease agent description nor maximize GPU parallelism. To respond to these problems, we have developed the MASS (Multi-Agent Spatial Simulation) CUDA library that allows users to describe all simulation models in CUDA C++, to automate entire model parallelization at GPU, and to minimize host-to-device memory transfer. However, our straightforward implementation did not improve the parallel performance. Focusing on the data-parallel computation with GPU, we examined MASS overheads in GPU memory usage and developed optimization techniques that reduce kernel context switches, optimize kernel configuration, use constant memory, and reduce overheads incurred by agent population, migration, and termination. These techniques improved Heat2D and SugarScape’s execution performance, respectively 3.9 times and 5.8 times faster than the corresponding C++ sequential programs. This paper gives details of our GPU parallelization techniques for multi-agent simulation and demonstrates the MASS CUDAs performance improvements.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Aaby, B.G., Perumalla, K.S., Seal, S.K.: Efficient simulation of agent-based models on multi-GPU and multi-core clusters. In: Proceedings of the 3rd International ICST Conference on Simulation Tools and Techniques, SIMUTools 2010, pp. 29:1–29:10. ICST, Torremolinos, Spain, March 2010
Ang, C.S., Zaphiris, P.: Simulating social networks of online communities: simulation as a method for sociability design. In: Gross, T., et al. (eds.) INTERACT 2009. LNCS, vol. 5727, pp. 443–456. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03658-3_48
Balmer, M., Meister, K., Nagel, K., Axhausen, K.W.: Agent-based simulation of travel demand: structure and computational performance of MATSim-T. Work report no. 504, ETH Zurich, Switzerland, July 2008
Barceló, J., Ferrer, J., Garcća, D., Grau, R.: Microscopic traffic simulation for ATT systems analysis. a parallel computing version. In: 25th CRT, August 1998
Blum, C.: Ant colony optimization: introduction and recent trends. Phys. Life Rev. 2(4), 353–373 (2005)
Brown, W.M., Wang, P., Plimpton, S.J., Tharrington, A.N.: A efficient algorithm for molecular dynamics simulation on hybrid CPU-GPU computing platforms. In: Proceedings of the 12th Int’l Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery, pp. 1357–1363, Changsha, China, August 2016
Chao, D.L., Halloran, M.E., Obenchain, V.J., Longini Jr., I.M.: FluTE, a publicly available stochastic influenza epidemic simulation model. PLoS Comput. Biol. 6(1), 517–527 (2010)
D’Souza, R.M., Marino, S., Kirschner, D.: Data-parallel algorithms for agent-based model simulations of tuberculosis on graphics processing units. In: Proceedings of Agent-Directed Symposium - ADS09, pp. 21:1–21:12, San Diego, CA. SCS, March 2009
Hermellin, E., Michel, F.: GPU delegation: toward a generic approach for developping MABS using GPU programming. In: Proceedings of the 2016 International Conference on Autonomous Agents & Multiagent Systems, pp. 1249–1258. International Foundation for AAMAS, Singapore, May 2016
Laville, G., Mazouzi, K., Lang, C., Marilleau, N., Herrmann, B., Philippe, L.: MCMAS: a toolkit to benefit from many-core architecure in agent-based simulation. In: an Mey, D., et al. (eds.) Euro-Par 2013. LNCS, vol. 8374, pp. 544–554. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-642-54420-0_53
Li, X., Cai, W., Turner, S.J.: Supporting efficient execution of continuous space agent-based simulation on GPU. Concurrency Comput. Pract. Experience 28(12), 3313–3332 (2016)
Michel, F.: Translating agent perception computations into environmental processes in multi-agent-based simulations: a means for integrating graphics processing unit programming within usual agent-based simulation platforms. Syst. Res. Behav. Sci. 33(6), 703–715 (2013)
Richmond, P., Walker, D., Coakley, S., Romano, D.: High performance cellular level agent-based simulation with flame for the GPU. Briefings Bioinf. 11(3), 334–347 (2010)
Shih, C., Yang, C., Fukuda, M.: Benchmarking the agent descriptivity of parallel multi-agent simulators. In: Bajo, J., et al. (eds.) PAAMS 2018. CCIS, vol. 887, pp. 480–492. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-94779-2_41
Strippgen, D., Nagel, K.: Using common graphics hardware for multi-agent traffic simulation with CUDA. In: Proceedings of the 2nd International Conference on Simulation Tools and Techniques, pp. 62:1–62:8. ICST, Rome, Italy, March 2009
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Kosiachenko, L., Hart, N., Fukuda, M. (2019). MASS CUDA: A General GPU Parallelization Framework for Agent-Based Models. In: Demazeau, Y., Matson, E., Corchado, J., De la Prieta, F. (eds) Advances in Practical Applications of Survivable Agents and Multi-Agent Systems: The PAAMS Collection. PAAMS 2019. Lecture Notes in Computer Science(), vol 11523. Springer, Cham. https://doi.org/10.1007/978-3-030-24209-1_12
Download citation
DOI: https://doi.org/10.1007/978-3-030-24209-1_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-24208-4
Online ISBN: 978-3-030-24209-1
eBook Packages: Computer ScienceComputer Science (R0)