Hardware acceleration of simulations of distributed systems

More Info
expand_more

Abstract

In recent years the study of complex systems gained prominence. Since it is usually difficult to use classical mathematic models to understand these systems, scientists and engineers have to resort to simulations. Currently programming languages like CUDA C and OpenCL are available to run large scale simulations on a GPU architecture. Alternatively simulations can be executed on agent-based simulators such as NetLogo. The former enables the writing of highly performant programs whereas the latter offers a simple language and execution model which is accessible to people with little programming experience. The purpose of this thesis is to devise a proof-of-concept simulator called CudaSimulator which attempts to create a middleground between NetLogo and CUDA, which on the one hand retains the simplicity of NetLogo and on the other hand executes simulations on a GPU architecture. Apart from the general context this thesis is motivated by a specific demand. The Snowdrop project at the Embedded Software Group, TU Delft, aims to find algorithms that are written in the NetLogo programming language and exhibit certain emergent behavior. In order to find such algorithms Genetic Programming is used. Since a Genetic Programming framework has to simulate and evaluate a lot of algorithms and this process is usually lengthy, it could be accelerated on a GPU architecture. The CudaSimulator is therefore developed in such a way that it could serve as a backend to the Genetic Programming framework. The thesis includes an evaluation of the simulator which shows the situations in which the CudaSimulator is more feasible than alternative solutions.

Files