Speeding up Python-based Lagrangian Fluid-Flow Particle Simulations via Dynamic Collection Data Structures

04/30/2021
by   Christian Kehl, et al.
0

Array-like collection data structures are widely established in Python's scientific computing-ecosystem for high-performance computations. The structure maps well to regular, gridded lattice structures that are common to computational problems in physics and geosciences. High performance is, however, only guaranteed for static computations with a fixed computational domain. We show that for dynamic computations within an actively changing computational domain, the array-like collections provided by NumPy and its derivatives are a bottleneck for large computations. In response, we describe the integration of naturally-dynamic collection data structures (e.g. double-linked lists) into NumPy simulations and ctypes-based C-bindings. Our benchmarks verify and quantify the performance increase attributed to the change of the collection data structure. Our application scenario, a Lagrangian (oceanic) fluid-flow particle simulation within the Parcels framework, demonstrates the speed-up yield in a realistic setting and demonstrates the novel capabilities that are facilitated by optimised collection data structures.

READ FULL TEXT

page 5

page 6

research
08/08/2022

Dynamic Maintenance of Kernel Density Estimation Data Structure: From Practice to Theory

Kernel density estimation (KDE) stands out as a challenging task in mach...
research
06/26/2023

Prefix-free graphs and suffix array construction in sublinear space

A recent paradigm shift in bioinformatics from a single reference genome...
research
12/02/2021

Dynamic Sparse Tensor Algebra Compilation

This paper shows how to generate efficient tensor algebra code that comp...
research
02/13/2020

Computing the Yield Limit in Three-dimensional Flows of a Yield Stress Fluid About a Settling Particle

Calculating the yield limit Y_c of a viscoplastic fluid flow is a challe...
research
01/20/2018

Pointer-Chase Prefetcher for Linked Data Structures

Caches only exploit spatial and temporal locality in a set of address re...
research
11/23/2015

A Python Extension for the Massively Parallel Multiphysics Simulation Framework waLBerla

We present a Python extension to the massively parallel HPC simulation t...
research
06/12/2023

RIP Linked List

Linked lists have always been an excellent teaching tool in programming....

Please sign up or login with your details

Forgot password? Click here to reset