On current commodity and high-performance computers computationally and data intensive tasks can only run at the hardware's full performance, if both processor and architecture features are taken into account on all levels – from the early algorithmic design to the final implementation. For numerical software, limited memory access via a hierarchy of cache memory and the increasingly hybrid and hierarchical design of high-end systems, complicated by the ongoing trend towards multi- and manycore CPUs, poses new challenges to computational scientists.
In the present project, hardware-aware programming and algorithmic approaches were studied in the context of different applications from Science and Engineering:
- The simulation of the propagation of oceanic waves causing Tsunamis using inherently memory and cache efficient discontinuous Galerkin calculations on recursively structured triangular grids.
- Compute- and memory intensive calculations of industry application in electrical engineering (in cooperation with ABB)
- Hardware-aware algorithms for image reconstruction in medical imaging.
- Computational fluid dynamics, especially for problems that involve fluid-structure interaction.
A special focus was on the development of cache-oblivious algorithms and cache-aware implementations, as well as hardware-oriented aspects in multicore programming. The respective work also fostered the development of tools developed by the group – especially autopin and cachegrind.