Parallel simulation methods for large-scale agent-based predator-prey systems : a thesis presented in partial fulfilment of the requirements for the degree of Doctor of Philosophy in Computer Science at Massey University, Albany, New Zealand
The Animat is an agent-based artiﬁcial-life model that is suitable for gaining insight into the interactions of autonomous individuals in complex predator-prey systems and the emergent phenomena
they may exhibit. Certain dynamics of the model may only be present in large systems, and a large
number of agents may be required to compare with macroscopic models. Large systems can be infeasible to simulate on single-core machines due to processing time required. The model can be
parallelised to improve the performance; however, reproducing the original model behaviour and
retaining the performance gain is not straightforward.
Parallel update strategies and data structures for multi-core CPU and graphical processing units (GPUs) are developed to simulate a typical predator-prey Animat model with improved perfor-
mance while reproducing the behaviour of the original model. An analysis is presented of the model to identify dependencies and conditions the parallel update strategy must satisfy to retain original model behaviour.
The parallel update strategy for multi-core CPUs is constructed using a spatial domain decomposition approach and supporting data structure. The GPU implementation is developed with a new update strategy that consists of an iterative conﬂict resolution method and priority number system to
simultaneously update many agents with thousands of GPU cores. This update method is supported
by a compressed sparse data structure developed to allow for efﬁcient memory transactions.
The performance of the Animat simulation is improved with parallelism and without a change
in model behaviour. The simulation usability is considered, and an internal agent deﬁnition system using a CUDA device Lambda feature is developed to improve the ease of conﬁguring agents without signiﬁcant changes to the program and loss of performance.