On the 10th April NVIDIA’s Calisa Cole interviewed Dr Paul Richmond on Accelerated Agent-Based Simulation of Complex Systems
NVIDIA: Paul, tell us about the FLAME GPU software which you developed.
Paul: Agent-Based Simulation is a powerful technique used to assess and predict group behavior from a number of simple interacting rules between communicating autonomous individuals (agents). Individuals typically represent some biological entity such as a molecule, cell or organism and can therefore be used to simulate systems at varying biological scales. The Flexible Large-scale Agent Modelling Environment for the GPU (FLAME GPU) is a piece of software which enables high level descriptions communicating agents to be automatically translated to GPU hardware. With FLAME GPU, simulation performance is enormously increased over traditional agent-based modeling platforms and interactive visualization can easily be achieved. The GPU architecture and the underlying software algorithms are abstracted from users of the FLAME GPU software, ensuring accessibility to users in a wide range of domains and application areas.
NVIDIA: How does FLAME GPU leverage GPU computing?
Paul: Unlike other agent-based simulation frameworks, FLAME GPU is designed from the ground up with parallelism in mind. As such it is possible to ensure that agents and behavior are mapped to the GPU efficiently in a way which minimizes data transfer during simulation. One of the most exciting aspects of GPU-accelerated simulation is that simulations can often be run faster than real-time. For example, a pedestrian evacuation model can be matched to real-world conditions and an evacuation plan can be simulated, essentially looking into the future for potential danger or problems. This forms the basis of my current work into using such agent simulation techniques for prediction and decision making. Example of pedestrian evacuation modeling simulation with FLAME GPU.
NVIDIA: What challenges did you face?
Paul: GPUs are very good at simulating homogeneous groups of agents where behavior is consistent across a population. In homogenous cases, behavior can be executed as kernels with very little divergence, which results in high performance. However, as the complexity of agents within a population increases, so too does the heterogeneity, ultimately impacting performance…….
To read the full article click here