High Performance Agent-Based Modeling in Repast HPC

John T. Murphy
Seminar

Repast HPC is a platform for creating agent-based models (ABMs) in any high-performance computing environment that implements parallelism using MPI. Repast HPC provides a simple framework in which users can construct models without knowledge of MPI or other low-level details of parallel computing, and has extended the power of HPC to a wide range of users in the ABM community. However, even though knowledge of MPI is not required, the nature of the parallel environment requires careful thought about how the agent interactions within the model will be structured. While there is generally a performance benefit that comes from parallelization, there is also an additional cost in that certain patterns of interaction can be more cumbersome than many users assume. The newest version of Repast HPC allows for the construction of arbitrary combinations agent interactions via network and spatial relationships. However, along with this new flexibility is a new range of possible ways for the simulation to become 'out of sync' across processes. Being out of sync is not by itself problematic: the performance gains that can be achieved in a parallel model, in fact, depend on the ability to move processes forward in simulation time independently, and a lack of synchronization is inherent in this. However, in an agent-based model there are multiple ways that the simulation can go out of sync- for example, changes to agents' internal states vs. changes to agents relationships to one another. There is therefore an array of ways that the simulation can be out of sync, and it follows that there are multiple paths by which synchronization can be re-established. A framework for understanding these pathways will be presented, illustrated by several examples making use of Repast HPC's new extensions. Performance tests of the new code, including several optional performance-related code switches, will also be discussed.