Parallelization Strategies for Spatial Agent-Based Models
Authored by Nuno Fachada, Vitor V Lopes, Rui C Martins, Agostinho C Rosa
Date Published: 2017
DOI: 10.1007/s10766-015-0399-9
Sponsors:
Portuguese Foundation for Science and Technology (FCT)
Platforms:
Java
Model Documentation:
UML
ODD
Pseudocode
Mathematical description
Model Code URLs:
https://github.com/fakenmc/pphpc/tree/java/java
Abstract
Agent-based modeling (ABM) is a bottom-up modeling approach, where each
entity of the system being modeled is uniquely represented as an
independent decision-making agent. Large scale emergent behavior in ABMs
is population sensitive. As such, the number of agents in a simulation
should be able to reflect the reality of the system being modeled, which
can be in the order of millions or billions of individuals in certain
domains. A natural solution to reach acceptable scalability in commodity
multi-core processors consists of decomposing models such that each
component can be independently processed by a different thread in a
concurrent manner. In this paper we present a multithreaded Java
implementation of the PPHPC ABM, with two goals in mind: (1) compare the
performance of this implementation with an existing NetLogo
implementation; and, (2) study how different parallelization strategies
impact simulation performance on a shared memory architecture. Results
show that: (1) model parallelization can yield considerable performance
gains; (2) distinct parallelization strategies offer specific trade-offs
in terms of performance and simulation reproducibility; and, (3) PPHPC
is a valid reference model for comparing distinct implementations or
parallelization strategies, from both performance and statistical
accuracy perspectives.
Tags
Simulation
Agent-based modeling
environment
Graphics processing units
GPU
Platforms
Framework
Shared memory
Parallelization strategies
Multithreading
Implementations