Shared memory parallelization of fully-adaptive simulations using a dynamic tree-split and -join approach
Martin A. Schreiber, Hans‐Joachim Bungartz, Michael Bader · 2012
In this work we present an approach for the parallelization of hyperbolic simulations on shared-memory architectures running on fully-adaptive grids. We tackle the parallelization problem with a dynamic sub-tree split- and join-approach by running computations on those split sub-trees in parallel using lightweight tasks. The traversal of sub-trees created by tree-splittings is built upon an inherently cache efficient approach for solving hyperbolic PDEs on dynamically adaptive triangular grids using a Sierpiński space filling curve. Our communication scheme among sub-trees stores the exchange-data to/from adjacent sub-trees in a consecutive memory area which is further utilized for an improved run-length-encoded data exchange. To give results for a concrete scenario, we implemented a solver for the shallow water equations which demands for fully-adaptive grid refinement and coarsening after each time-step. Our results give detailed statistics about optimization of the split size, parallelization overhead and also strong scalability results for a simulation running on multi-socket Intel and AMD architectures.