Cache Optimizations for the Lattice Boltzmann Method in 2D

The lattice Boltzmann Method (LBM) has, in recent years, gained wide acceptance as an efficient alternative to simulate flows in complex geometries as opposed to using algorithms that numerically solve the Navier-Stokes equation. The lattice Boltzmann method divides space into a regular grid, where each grid site determines the local behavior of the fluid. For algorithms working on regular grids, execution speed is often limited by access to the main memory. However, the speed of computer processors is currently increasing much faster than this memory latency decreases. Thus, modern computer architectures employ memory hierarchies based on caches that are 30 to 40 times faster than the main memory, to mitigate this effect. It has been shown that many algorithms working on regular grids can be optimized in terms of spatial and temporal locality, to efficiently use these memory hierarchies. This thesis will investigate the transferability of these techniques to the lattice Boltzmann method using the C++ programming language and it will provide quantitative values for the gain in performance.