LibGeoDecomp Logo


3D von Neumann stencil LibGeoDecomp (Library for Geometric Decomposition) is a free open-source library which aims at aiding researchers to run their simulation codes on a wide range of parallel computers, ranging from multi-core CPUs and GPUs to MPI clusters. What makes LibGeoDecomp special is that it relieves the user of having to struggle with parallel programming. Instead, the library takes over the complex task of parallelization and parameter tuning. Of course this won't work for any application (we don't believe in generic auto-parallelization -- and so far history proofs us right). Instead, we focus on a class of applications which we deem equally important and challenging: stencil codes. Actually, most simulations, ranging from computational fluid dynamics (CFD) and material science to Conway's Game of Life can be reformulated as stencil codes. Konrad Zuse even proposed that the whole universe could be accurately modelled as a stencil code (cellular automata are a subset of stencil codes).

Stencil codes can be found at the core of many physical simulations or numerical methods. They are therefore of paramount importance to high performance computing. In essence they represent a time and space discrete simulations on a regular grid. The grid is decomposed into atomic cells. For each time step the new state of a cell can be computed using only its old state and the cells in a fixed neighborhood. Examples include cellular automata (e.g. Conway's Game of Life) and many solvers, e.g. the Jacobi Method. Since cells on their neighbors for each update, these problems are considered to be tightly coupled, causing significant challenges for the implementer. Grid systems aggravate this situation by their heterogeneity in respect to both, networks and CPUs.

hierarchical parallelization LibGeoDecomp can provide a auto-parallelization for this class of applications by making heavy use of C++ class templates. Essentially scientists encapsulate their simulation model into a class which describes the data and behavior of a single simulation cell. This template is then instantiated by the library for the whole simulation grid. Thanks to LibGeoDecomp's hierarchical architecture, it is flexible enough to be extended to new architectures by dedicated plug-ins. The has allowed the library to keep up with the ever changing landscape of parallel architectures for the past 5 years and we are confident that it will continue to grow.

heterogeneous parallel computer

Further Reading

For a list of LibGeoDecomp's features and benchmark results, please see its homepage. If you'd like to get an impression on how applications build with LibGeoDecomp look like, please have a look at the videos in the gallery.




Current and Recent Student Projects

Name Type Subject
Franz Richter Research Project Stencil Codes on the Cell BE
Siegfried Schöfer Student Assistant OpenCL Plug-in for LibGeoDecomp
Julian Hammer Bachelor Thesis Parallelization of a Meshfree Materials Science Simulation
Arne Hendricks Bachelor Thesis Parallel Wavefront Stepper for Multi-Cores

Student Bachelor and Master Theses

Interested in getting involved in the development of state of the art stencil codes for high performance and grid computing? Then send us an e-mail or visit us. Possible areas of work include, but are not limited to visualization of simulation runs, parallel I/O, and optimization of MPI message passing. Projects can be individually tailored to suit both, your and our interests.