Agent-based modelling (ABM) and simulation is a domain of social simulation that provides the following benefits: 1) the ability to model individual-level decisionmaking regimes across many millions of agents, 2), the ability to create spatially-explicit simulations, and 3) the ability to observe simulated behavior at the individual level or in aggregate. As ABMs reach massive scale incorporating many millions, even hundreds of millions, of individual agents, compute and model run time quickly become the bottleneck for more robust simulation. ABMs are traditionally difficult to parallelize through standard techniques such as multiprocessing and multithreading due to the need for a shared memory environment. Communication between agents at every time step is intensive and agent decisionmaking at the individual level is based on 1) the actions of other agents, and 2) the state of the environment at each time step. While packages exist to parallelize ABMs in C++ or Fortran, fewer approaches are available in Python and using cloud-based resources. This paper will detail the process of paralellizing a large-scale, spatially-explicit ABM simulating ~8M agents on Google Cloud Platform (GCP). The agents represent refugees in response to forced migration events worldwide.
Leveraging HPC Techniques for Large-Scale Agent-Based Models in Python
Conference
I/ITSEC 2020
Track
Emerging Concepts and Innovative Technologies
2 Views