Weinzierl, Tobias (2019) 'The Peano software---parallel, automaton-based, dynamically adaptive grid traversals.', ACM transactions on mathematical software., 45 (2). p. 14.
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.
|Full text:||(AM) Accepted Manuscript|
Download PDF (1547Kb)
|Publisher Web site:||https://doi.org/10.1145/3319797|
|Publisher statement:||© 2019 American Mathematical Society. First published in Weinzierl, Tobias (2019). The Peano software---parallel, automaton-based, dynamically adaptive grid traversals. ACM Transactions on Mathematical Software 45(2): 14 published by the American Mathematical Society.|
|Date accepted:||No date available|
|Date deposited:||07 December 2018|
|Date of first online publication:||18 April 2019|
|Date first made open access:||18 April 2019|
Save or Share this output
|Look up in GoogleScholar|