Modernizing Titan2D, a Parallel AMR Geophysical Flow Code to Support Multiple Rheologies and Extendability

10/02/2019
by   Nikolay A. Simakov, et al.
0

In this work, we report on strategies and results of our initial approach for modernization of Titan2D code. Titan2D is a geophysical mass flow simulation code designed for modeling of volcanic flows, debris avalanches and landslides over a realistic terrain model. It solves an underlying hyperbolic system of partial differential equations using parallel adaptive mesh Godunov scheme. The following work was done during code refactoring and modernization. To facilitate user input two level python interface was developed. Such design permits large changes in C++ and Python low-level while maintaining stable high-level interface exposed to the end user. Multiple diverged forks implementing different material models were merged back together. Data storage layout was changed from a linked list of structures to a structure of arrays representation for better memory access and in preparation for further work on better utilization of vectorized instruction. Existing MPI parallelization was augmented with OpenMP parallelization. The performance of a hash table used to store mesh elements and nodes references was improved by switching from a linked list for overflow entries to dynamic arrays allowing the implementation of the binary search algorithm. The introduction of the new data layout made possible to reduce the number of hash table look-ups by replacing them with direct use of indexes from the storage class. The modifications lead to 8-9 times performance improvement for serial execution.

READ FULL TEXT
research
02/11/2016

High performance Python for direct numerical simulations of turbulent flows

Direct Numerical Simulations (DNS) of the Navier Stokes equations is an ...
research
10/30/2017

A Dynamic Hash Table for the GPU

We design and implement a fully concurrent dynamic hash table for GPUs w...
research
07/01/2016

Massively parallel implementation in Python of a pseudo-spectral DNS code for turbulent flows

Direct Numerical Simulations (DNS) of the Navier Stokes equations is a v...
research
03/02/2021

Parallel Machine Learning of Partial Differential Equations

In this work, we present a parallel scheme for machine learning of parti...
research
05/24/2021

Parallel adaptive procedure for CFD simulations

The present paper describes a parallel adaptive procedure in CFD solvers...
research
05/07/2020

Delayed approximate matrix assembly in multigrid with dynamic precisions

The accurate assembly of the system matrix is an important step in any c...
research
07/13/2018

The Dune Python Module

In this paper we present the new Dune-Python module which provides Pytho...

Please sign up or login with your details

Forgot password? Click here to reset