OpenCL for Large-Scale Agent-Based Simulations
NetLogo is a Java-based multi-agent programmable modeling environment. Our aim is to improve the execution speed of NetLogo models with large number of agents by means of heterogeneous computing. Firstly, we describe OpenCL as a suitable computing platform. Then we propose a new NetLogo-to-OpenCL extension (NL2OCL) which encapsulates functionality of OpenCL and enables NetLogo to undertake agents’ computations simultaneously on graphic processor units. The architecture of our extension is presented. An experimental flocking model with 40,000 agents is used for evaluation of NL2OCL functioning. When using NL2OCL the simulation runs more than 300-times faster than the original model which was created in NetLogo solely. It means that with NL2OLC, drawbacks in maximum size of the NetLogo model and the simulation speed are tackled. Our approach allows using standard PC configurations with suitable graphical cards for large agent-based simulations while preserving advantages of NetLogo. It is a good alternative for researchers who cannot afford high performance computational systems.
KeywordsAgent-based simulation Heterogeneous computing OpenCL NetLogo
The financial support of the Specific Research Project Autonomous Socio-Economics Systems of FIM UHK is gratefully acknowledged.
- 2.OpenABM Homepage. https://www.openabm.org/modeling-platforms. Accessed 26 Apr 2017
- 3.NetLogo Homepage. http://ccl.northwestern.edu/netlogo/. Accessed 26 Apr 2017
- 4.Deissenberg, C.H., Hoog, V.D., Dawid, H.: EURACE: massively parallel agent-based model of the European economy. http://www.eurace.org. Accessed 26 Apr 2017
- 5.Railsback S., Ayllón, D., et al.: Improving execution speed of models implemented in NetLogo. J. Artif. Soc. Soc. Simul. 20(1) (2017)Google Scholar
- 6.OpenCL Homepage. https://www.khronos.org/opencl/. Accessed 26 Apr 2017
- 8.Souza, A.M., Pereira, F.D., Ordonez, E.D.M.: Exploiting heterogenous systems: Keccak on OpenCL. In: The 2013 International Conference on Parallel and Distributed, Processing Techniques and Applications (PDPTA’13) (2013)Google Scholar
- 9.Bourd, A. (ed.): The OpenCL Specification, version 2.2. https://www.khronos.org/registry/OpenCL/specs/opencl-2.2.pdf. Accessed 26 Apr 2017
- 10.Gaster, B.R., et al.: Heterogenous Computing with OpenCL. Elsevier, Amsterdam (2012)Google Scholar
- 11.Wilensky, U.: NetLogo flocking model. http://ccl.northwestern.edu/netlogo/models/Flocking. Accessed 26 Apr 2017
- 14.Lysenko, M., D’Souza, R.M.: A framework for megascale agent based model simulations on graphics processing units. J. Artif. Soc. Soc. Simul. 11(4), 10 (2008)Google Scholar
- 15.Berkel, S., et al.: Automatic discovery of algorithms for multi-agent systems. In: Proceedings of the 14th Annual Conference Companion on Genetic and Evolutionary Computation (GECCO 2012), Philadelphia, USA (2012)Google Scholar
- 17.Wrede, F., Ernsting, S.: Simultaneous CPU–GPU execution of data parallel algorithmic skeletons. Int. J. Parallel Program., 1–20 (2017)Google Scholar