The Peano software - parallel, automaton-based, dynamically adaptive grid traversals
arXiv:1506.04496 · doi:10.1145/3319797
Abstract
We discuss the design decisions, design alternatives and rationale behind the third generation of Peano, a framework for dynamically adaptive Cartesian meshes derived from spacetrees. Peano ties the mesh traversal to the mesh storage and supports only one element-wise traversal order resulting from space-filling curves. The user is not free to choose a traversal order herself. The traversal can exploit regular grid subregions and shared memory as well as distributed memory systems with almost no modifications to a serial application code. We formalize the software design by means of two interacting automata---one automaton for the multiscale grid traversal and one for the application-specific algorithmic steps. This yields a callback-based programming paradigm. We further sketch the supported application types and the two data storage schemes realized, before we detail high-performance computing aspects and lessons learned. Special emphasis is put on observations regarding the used programming idioms and algorithmic concepts. This transforms our report from a "one way to implement things" code description into a generic discussion and summary of some alternatives, rationale and design decisions to be made for any tree-based adaptive mesh refinement software.
References in corpus (11)
- A Survey of High Level Frameworks in Block-Structured Adaptive Mesh Refinement Packages
- Afivo: a framework for quadtree/octree AMR with shared-memory parallelization and geometric multigrid methods
- A Parallel Mesh-Adaptive Framework for Hyperbolic Conservation Laws
- Extreme-Scale Block-Structured Adaptive Mesh Refinement
- Electrostatic PIC with adaptive Cartesian mesh
- Complex additive geometric multilevel solvers for Helmholtz equations on spacetrees
- Stop talking to me -- a communication-avoiding ADER-DG realisation
- Quasi-matrix-free hybrid multigrid on dynamically adaptive Cartesian grids
- Two Particle-in-Grid Realisations on Spacetrees
- How many three-dimensional Hilbert curves are there?
- Bounds on the number of discontinuities of Morton-type space-filling curves
Cited by in corpus (15)
- ExaHyPE: An Engine for Parallel Dynamically Adaptive Simulations of Wave Problems
- Massively Parallel Simulations of Binary Black Hole Intermediate-Mass-Ratio Inspirals
- A Flexible, Parallel, Adaptive Geometric Multigrid method for FEM
- Scalable adaptive PDE solvers in arbitrary domains
- Studies on the energy and deep memory behaviour of a cache-oblivious, task-based hyperbolic PDE solver
- Enclave Tasking for Discontinuous Galerkin Methods on Dynamically Adaptive Meshes
- Stop talking to me -- a communication-avoiding ADER-DG realisation
- Quasi-matrix-free hybrid multigrid on dynamically adaptive Cartesian grids
- GPU-Native Adaptive Mesh Refinement with Application to Lattice Boltzmann Simulations
- Lightweight Task Offloading Exploiting MPI Wait Times for Parallel Adaptive Mesh Refinement
- Spherical accretion of collisional gas in modified gravity I: self-similar solutions and a new cosmological hydrodynamical code
- Task inefficiency patterns for a wave equation solver
- ExaGRyPE: Numerical General Relativity Solvers Based upon the Hyperbolic PDEs Solver Engine ExaHyPE
- Delayed approximate matrix assembly in multigrid with dynamic precisions
- Stabilised Asynchronous Fast Adaptive Composite Multigrid using Additive Damping