Artificial Life Agent-Based Simulations using the GPU

1. Summary

Artificial life is a field that combines computing and biology. Using object-oriented programming, we can code the behavior for individual agents and then fill a world with instances of those agents. In this tutorial, you will be filling a world with predator agents and prey agents. The predator agents will be programmed to chase and eat the prey, and the prey will be programmed to try to escape the predators. By coding these simple individual-level behaviors, we can see what the population as a whole does.

2. Presentation Materials

Click here.

3. Hands-on Exercise(s)

Click here for module for use at Carleton College.

Click here for module for use with Linux or Windows.

4. Associated Materials/Files

Flame GPU Git Repo: https://github.com/FLAMEGPU/Tutorial.git

5. Program/Software requirements

CUDA GPU: https://developer.nvidia.com/cuda-gpus

Gnuplot: http://www.gnuplot.info/

6. Advanced Material

Flame GPU Main Repo: https://github.com/FLAMEGPU

Flame GPU Documentation: Docs: https://github.com/FLAMEGPU/docs

Lotka-Volterra Wikipedia: https://en.wikipedia.org/wiki/Lotka%E2%80%93Volterra_equations

7. Instructor Notes

If you do not have access to CUDA GPU, ie you are doing this on a Mac, you will need to use Amazon Web Services or another service that lets you run with CUDA GPU. They do not allow for visualizations, so you’ll have to skip that part or save the graph and move it to your local machine to view. It is really much easier to just find a CUDA GPU.

This module assumes students can use the command line and GitHub.

As of 8/14/18 it is very difficult to actually get Lotka-Volterra oscillations in the simulation, hopefully that will be fixed soon.