## A cache-oblivious self-adaptive full multigrid method.(English)Zbl 1174.65550

Summary: This paper presents a new efficient way to implement multigrid algorithms on adaptively refined grids. To cope with todays demands in high-performance computing, we cannot do without such highly sophisticated numerical methods. But if we do not implement them very carefully, we lose a lot of efficiency in terms of memory usage: using trees for the storage of hierarchical multilevel data causes a large amount of non-local (in terms of the physical memory space) data accesses, and often requires the storage of pointers to neighbours to allow the evaluation of discrete operators (difference stencils, restrictions, interpolations, etc.). The importance of this problem becomes clear if we remember that storage and not the CPU is the bottleneck on modern computers.
We established a cache-oblivious and storage-minimizing algorithm based on the concept of space-tree grids combined with a cell-oriented operator evaluation, a linear ordering of grid cells along a space-filling curve, and a sophisticated construction of linearly processed data structures for vertex data. In this context, we could show that the implementation of a dynamically adaptive $$F$$-cycle is, first, very natural and, second, does not cause any overhead in terms of storage usage and access as adaptivity and multilevel data do not disturb the linear processing order of our data structures.

### MSC:

 65N55 Multigrid methods; domain decomposition for boundary value problems involving PDEs 68P05 Data structures 65N50 Mesh generation, refinement, and adaptive methods for boundary value problems involving PDEs

### Software:

Cachegrind; DiMEPACK
Full Text: