CUDA Spotlight: GPU-Accelerated Agent-Based Simulation of Complex Systems

Paul-RichmondThis week’s Spotlight is on Dr. Paul Richmond, a Vice Chancellor’s Research Fellow at the University of Sheffield (a CUDA Research Center). Paul’s research interests relate to the simulation of complex systems and to parallel computer hardware.

NVIDIA: Paul, tell us about FLAME GPU.
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: Which CUDA features and GPU libraries do you use?
Paul: Initially FLAME GPU used my own implementations of sorting and stream compaction techniques. However, this functionality has been migrated, initially to CUDPP and more recently to Thrust. It is likely that CUB will be used in the future to gain even more performance.

I am currently re-engineering a large amount of the FLAME GPU code to take advantage of newer GPU features such as concurrency through parallel streams, GPUDirect for multi GPU architectures and faster sorting methods based on improved atomics performance.

NVIDIA: What is ACRC and how is it using the outputs of FLAME GPU?
Paul: The Advanced Computing Research Centre (ACRC) at the University of Sheffield is a gateway to collaborating with industry, with simulation as one of the key focus areas. FLAME GPU and similarly the FLAME HPC software (for distributed architectures) are used to provide simulations with an industrial focus impacting areas such as planning, construction, the environment, medical research and economic policy. It is very exciting to see the impact of high-performance simulation techniques being applied to real industrial needs. So far there has been lots of varied interest.

NVIDIA: Tell us about Osteolytica.
Paul: Osteolytica is the result of a training program to promote interdisciplinary research and is a great example of how CUDA is being applied to a wide range of domains within the University of Sheffield CUDA research Center.

During the training program I met with Dr. Andrew Chantry, a clinical researcher in the school of medicine. We discussed a particular problem related to not having a robust method for quantifying the extent of cancer-induced osteolytic lesion damage of bone samples obtained through microCT volumetric scans.

I realized that GPU computing could be used to provide a novel algorithm for localized bone surface reconstruction, effectively providing a metric to measure damage. This software is now used heavily within Dr. Chantry’s research to evaluate cancer treatments and the university is exploring commercialization options.

Osteolytica lesion analysis software

NVIDIA: When did you first see the promise of GPU computing?
Paul: My background is in computer graphics, so I was an early convert to GPU computing. Before CUDA arrived I was accelerating general purpose code using GPGPU techniques relying on graphics primitives. GPU programming has come a long way since then and GPUs are now infinitely easier to work with.

NVIDIA: What are you looking forward to in the next five to ten years?
Paul: In the immediate future I look forward to the increased performance, memory sizes and scalability (through NVLink) of future architectures, as described at the recent GPU Tech Conference. This will enable agent-based models of increasing scale and complexity to be simulated with the potential to offer new insights into biological processes.

More generally, I suspect that over the next ten years limitations in scaling simulations will be not be in hardware, instead software will have to evolve to become increasingly parallel. Platforms such as CUDA are extremely helpful for programming GPU devices. However, in some cases additional algorithms and data parallel techniques will be required.

I am interested in the idea that biological brain function can offer some insight into how future hardware and software techniques can scale to the extreme levels evident in nature.

Read more GPU Computing Spotlights.


About Brad Nemire

Brad Nemire
Brad Nemire is on the Accelerated Computing Developer Marketing team and loves reading about all of the fascinating research being done by developers using NVIDIA GPUs. Reach out to Brad on Twitter @BradNemire and let him know how you’re using GPUs to accelerate your research. Brad graduated from San Diego State University and currently resides in San Jose, CA. Follow @BradNemire on Twitter