Supercomputer architecture is moving quickly to multi-core and many- core
architectures. An additional trend is the increasing use of special purpose
accelerators, e.g. in form of graphics cards, the Cell processor, or reconfigu-
rable hardware. This has the potential to deliver unprecedented performance
at lower cost and reduced power consumption. However, this trend opens
many unanswered questions on how these devices can be use effectively in
real life supercomputing applications, since these accelerators are only
effec- tive on certain algorithmic structures that exhibit a high degree of
regularity and they are inefficient or very difficult to program for others. At the
LSS we have developed (partly with KONWIHR support) application
software, whose basic structure supports heterogeneous architectures. For
this project we will focus on the waLBerla framework for simulating complex
flows that have a wide range of applications [4, 5]. The software waLBerla is
designed such that it distinguishes between modules that require complex
algorithmic logic and regular structures that can exploit a very high degree of
parallelism. While the latter parts are very well suited for a potential use of
multi-core parallelism and accelerator technologies, the algorithmically more
complex parts also can be run on the conventional parts of a heterogeneous
system. We therefore propose to extend waLBerla in order to exploit current
and future heterogeneous multi-core architectures.Solving problems in present-day simulation is becoming more
and more complex. Both the number of physical effects taken
into account and the complexity of the associated software
development process increase. In order to meet these growing
demands, the Chair for System Simulation (LSS) developed the
massively parallel and flexible simulation framework
waLBerla (widely applicable Lattice Boltzmann solver from
Erlangen). Originally, the framework has been centered
around the Lattice-Boltzmann method for the simulation of
fluid scenarios. Meanwhile, its usability is not only
limited to this algorithm but it is also suitable for a wide
range of applications, based on structured grids. For
example, an efficient multigrid solver for partial
differential equations has been integrated. Next to the
basic requirements of easy adaptivity and extensibility for
new fluid problems, the waLBerla project also aims at
physical correctness and high performance. A particular
feature is the simulation of large ensembles of
geometrically fully resolved, and arbitrarily shaped
particles within fluid flows. Even on 294912 cores, it is
possible to gain an efficieny of more than 95%. Hence,
waLBerla is a comprehensive program rich in features as well
as a library for the easy development of new applications
based on fluid simulation. Thus, it meets the requirements
of scientific researchers, performance optimizers, code
developers as well as for industrial cooperations.
Free Surface Flows
Two-phase flows are apparent in our everyday life and many industrial applications. Within waLBerla, the simulation of free surfaces copes with
different scientific problems in this field. Simulation of bubbly flows and foams can be applied to metal foaming or food froth. Wetting models
enable the simulation of printable circuits and labs on a chip. Applied on porous media, oil extraction, water in fuel cells or diapers can be simulated.
Figure 1: Liquid water drop on a surface with two different contact angles (red: hydrophobic (100°), green: hydrophilic (47°)).
Figure 2: Drop hit by a bullet (no gravity).
Within the waLBerla project a simulation methodology has been developed for the simulation of physically realistic particulate flows, such as sedimentation, erosion or segregation processes, involving millions of fully resolved, arbitrarily shaped particles.
Figure 3: The house of the bear: fluid structure interaction can be simulated very stable.
Figure 4: Sedimentation process with bodies of different masses (red: high mass, grey: low mass).
HPC Software Design
The thorough and systematic design of software components for use within HPC projects is of utmost importance for the
correctness and efficiency. Also, proper HPC software design is a prerequisite to tackle the enormous complexity of the target
applications. In this project the necessary software infrastructure for both the waLBerla and the pe (physics engine) project is developed.
Figure 5: Sweep concept: work steps are subdivided into preprocessing, actual work and postprocessing step.
Figure 6: Patch and block design: supports massively parallel simulations and load balancing.