About Sugarscape

SS

Sugarscape is an agent-based model that is based on what is described in Growing Artificial Societies, a book by Joshua M. Epstein and Robert Axtell that relates to what is referred to as the social sciences, which is concerned with branches of society and the different known relationships among individuals within a society. Sugarscape works as a social simulation that allows users to analyse social structures, processes and behaviours that are evident in a normal real-world society. The sugarscape ABM consists of an environment, agents and rules which determine the agent's behaviour when interacting with the environment and other agents. As the name suggests, the environment consists of a resource referred to as “sugar”. Agents move throughout the environment collecting sugar and following the rules that have been implemented for them. This will include the agent's interaction with various social aspects, including trade, combat, grouping, diseases, reproduction and several others in the simulated environment that users can observe at will.

GPU implementation

This project primary goal is to modify the original implementation of the Sugarscape simulation, so that the application is capable of running on a PC’s GPU. This was done through the use of OpenMP, an application programming interface that is used for multi-platform parallel processing in C, C++ and Fortran programs. A recent version of OpenMP, version 4.0 introduced features that allows users to offload some of the applications work to the GPU. This reduces the amount of CPU usage needed when executing your application. Through this, we can expect that the end product of this project will be a significant improvement to the original implementation in terms of CPU usage.

Project Objectives

Concurrent Programming: The final product must be capable of running concurrently on a GPU, as well as on multiple cores.

13 Rules: The 13 rules of Sugarscape, to allow it to simulate a real-world society as accurately as possible, must be fully implemented in the application, allowing users to select to use and view the effects of the rules while running the sugarscape simulation.

Benchmarking: The final product of this project must be benchmarked, have its performance analysed and compared to the original implementation of Sugarscape.

Advanced point and click GUI: The final application must be capable of integrating with sugarscape to provide users with a more advanced and well-designed GUI, providing a display of the application, point-and-click interaction and more advanced customisable options.