Nowadays, competitive numerical algorithms for solving partial differential equations have to work with the most efficient numerical methods like multigrid and adaptive grid refinement and thus with hierarchical data structures. Unfortunately, in most implementations, hierarchical data -- typically stored in trees -- cause a non-negligible overhead in data access. To overcome this quandary -- numerical efficiency versus efficient implementation -- our algorithm uses space-filling curves to build up data structures which are processed linearly. In fact, the only kind of data structure used in our implementation are stacks. Thus, data access becomes very fast -- even faster then the common access of non-hierarchical data stored in matrices -- and, in particular, cache misses are reduced considerably. Furthermore, the implementation of multigrid cycles and/or higher order discretizations as well as the parallelization of the whole algorithm becomes very easy and straightforward on these data structures.
«
Nowadays, competitive numerical algorithms for solving partial differential equations have to work with the most efficient numerical methods like multigrid and adaptive grid refinement and thus with hierarchical data structures. Unfortunately, in most implementations, hierarchical data -- typically stored in trees -- cause a non-negligible overhead in data access. To overcome this quandary -- numerical efficiency versus efficient implementation -- our algorithm uses space-filling curves to build...
»