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.