High performance computing for massively parallel simulations of animal group behavior

Posted by on Sep 22 2009 in Uncategorized2 comments

We develop our massively parallel simulation models of animal group behavior using General Purpose Graphics Processing Units (GPGPUs) and NVIDIA’s CUDA programming architecture (and sometimes OpenCL). This high performance computing environment allows us to harness thousands of processing cores allowing us to simulate millions of interacting individuals in complex environments as well as to explore the underlying physics, and evolutionary principles of adaptive collective behavior, including the evolution of collective migration and consensus decision making among cells and organisms.

cuda2Some of the fundamental questions in biology revolves around understanding how the local interactions among individuals  can lead to spectacular macroscopic patterns and  why do these unrelated group of organisms, though individually selfish, exhibit apparent co-operative behavior through superior coordinated motion while performing foraging, migration, etc? What are the selection pressures that drives these collective behaviors under conditions of spatio-temporal variability in environmental conditions? Computational challenges involved in understanding these questions are enormous and normal CPU based computation can be prohibitive.

More specifically, the models of collective animal behavior based on self-propelled particles in a spatially explicit environment are computationally expensive, for example, doubling number of individuals in the simulations increases the computation time by 4 times. These computations can be become prohibitively slow if one is interested in simulating very large number of animals as seen in nature, which for example can be millions. In addition, the spatio-temporal variability in the environment, feedback between individuals and the environment together with how individuals evolve on evolutionary time scales makes it virtually impossible to use traditional method of CPU computing. These challenges emerge while analyzing the data for from the experimental videos as well.  To address these issues, CouzinLab develops simulation tools that combines models of swarming with evolutionary game theoretic framework on massively parallel architecture on graphical processing units (GPU) developed by NVIDIA Corporation.

Using techniques of spatial hashing and sorting to reduce the computational complexity of the problem and furthermore parallelizing the code based on CUDA (a programing language for NVIDIA GPUs such as Tesla, Geforce, etc) the lab has developed swarming codes where millions of individuals can be simulated and visualized on a personal super computer. In addition, we are also developing GPU based image analysis software to track the individuals in a swarm. We have been able to obtain speeding of 10x-500x (compared to a regular CPU code) depending the nature of the problem. Lab members working on this technology are Vishwesha Guttal, Yael Katz, Simon Leblanc, Colin Torney and Colin Twomey. We also collaborate with the group of Prof. Linda R. Petzold at University of California at Santa Barbara that includes Hong Li and Allison Kolpas and an Italian group consisting of Ugo Erra (Università della Basilicata), Bernardino Frola, Vittorio Scarano (Università di Salerno).

Video of an efficient GPU implementation for large scale individual-based simulation of collective behavior (with Ugo Erra, Bernardino Frola, Vittorio Scarano):

YouTube Preview Image

NVIDIA resource page: http://www.nvidia.com/object/cuda_home.html

Publications that employed NVIDIA CUDA:

Couzin, I.D., Ioannou, C.C., Demirel, G., Gross, T., Torney, C.J., Hartnett, A., Conradt, L., Levin, S.A. & Leonard, N.E. (2011) Uninformed individuals promote democratic consensus in animal groupsScience 332(6062), 1578-1580. Free reprint available from this link on our publications page.

Torney, C., Berdahl, A. and Couzin, I.D. (2011) Signaling and the evolution of cooperative foraging in dynamic environmentsPLoS Computational Biology 7(9), e1002194.

Guttal, V., & Couzin, I. D. (2011) Leadership, collective motion and the evolution of migratory strategiesCommunicative and Integrative Biology, 4, 294-298. Open Access.

Bazazi, S., Romanczuk, P., Thomas, S., Schimansky-Geier, L., Hale, J. J., Miller, G. A., Sword, G.A., Simpson, S.J. and Couzin, I.D. (2011) Nutritional state and collective motion: from individuals to mass migrationProceedings of the Royal Society of London Series B 278(1704), 356-363. 

Guttal, V. & Couzin, I. D. (2010) Social interactions, information use and the evolution of collective migrationPNAS 107(37), 16172-16177.

Torney, C., Levin, S. A. & Couzin, I. D. (2010) Specialization and evolutionary branching within migratory populationsPNAS 107(47), 20394-20399.

Erra, U., Frola, B., Scarano, V. & Couzin, I.D. (2009) An efficient GPU implementation for large scale individual-based simulation of collective behaviorHigh Performance Computational Systems Biology, 51-58. Doi: 10.1109/HiBi.2009.11 

Tags:

2 comments

» Comments (RSS)
  1. Do you have any openly-available source for this? I'm working on reservoir simulations with CUDA, but I'd like to see how you implemented your parallelism.
    Also, how are you getting cooperation between motherboards? MPI?

  2. Hi Tom!

    Thanks for your interest in our work. I have transferred your questions to our specialists. I’m sure one of them will answer them soon.

    Best,
    Simon.

Add a comment