Parallelization for simulation, games etc.

To better understand the pros and cons of existing parallel programming systems, as well as to experiment with our own modifications to these systems, we are working on example applications. For instance, in the past we considered OpenSteer and WaterGAP, which are described below. Moreover, we are interested in cooperations with companies or academia to parallelize further applications, where we are open to many areas such as simulation, optimization, and scheduling. We are especially interested in applications that have previously been programmed sequentially and now want to profit from parallelization.

Parallelization of OpenSteer
Multi-core CPUs for PCs and the next generation of video game consoles force game developers to parallelize their upcoming games (which have mainly been developed sequentially until recently). Guaranteeing interactivity and high performance for more and more demanding game mechanics while applying parallel programming to algorithms and the whole game architecture opens a new and exciting field for research.

How to apply different parallel programming approaches and combinations of them to computer games, and especially the field of game AI (Artificial Intelligence) is the central focus of our research. The open source project OpenSteer ( from Craig W. Reynolds is used as a starting point.

OpenSteer is an AI library to describe the behavior of crowds of non-player characters (agents) inside a virtual world. Simple steering behaviors are combined to define the movement and reaction of each individual agent, e.g. "avoid obstacles while following a path and evade other agents/pedestrians". Currently the graphics component of the library demo application is refactored to ease parallelization.

Parallelization of WaterGAP
WaterGAP, which stands for "Water - Global Assessment and Prognosis", is a C++ program that computes current and future water availability worldwide based on input data for climate, vegetation, water usage etc. The program has been developed and is currently being refined at the Center for Environmental Systems Research of Kassel university.

The parallelization of WaterGAP profits from the structuring of the world into basins that are almost independent computationally. The basins are distributed to different nodes of a cluster, and communication is accomplished with MPI. As some basins are large, they are further divided into sub-basins, which requires more frequent communication. Within each basin, computations are done for a set of grid cells, and hence the computations can be distributed to different processors of the same node using OpenMP.

For further information please contact one of the following members of our staff:
Björn Knafla
Prof. Dr. Claudia Leopold