In many domains, high-resolution agent-based simulations require experiments with a large number (tens or hundreds of millions) of computationally complex agents. Such large-scale experiments are usually run for efficiency on high-performance computers or clusters, and therefore agent-based simulation frameworks must support parallel distributed computations. The development of experiments with a large number of interconnected agents and a shared environment running in parallel on multiple compute nodes is especially challenging because it introduces the overhead of cross-process communications. In this paper we discuss the parallel distributed architecture of the farm agent-based simulation framework for social network simulations. To address the issue of shared environment synchronization we used a hybrid approach that distributes the simulation environment across compute nodes and keeps the shared portions of the environment synchronized via centralized memory storage. To minimize cross-process communication overhead, we allocate agents to processes via a graph partitioning algorithm that minimizes edge cuts in the communication graph, estimated in our domain by empirical data of past agent activities. The implementation of the toolkit used off the shelf components to support centralized storage and messaging/notification services. This architecture was used in a large-scale Github simulation with up to ten million agents. In experiments in this domain, the graph partitioning algorithm cut overall runtime by 67% on average.
CITATION STYLE
Blythe, J., & Tregubov, A. (2019). FARM: Architecture for Distributed Agent-Based Social Simulations. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 11422 LNAI, pp. 96–107). Springer Verlag. https://doi.org/10.1007/978-3-030-20937-7_7
Mendeley helps you to discover research relevant for your work.