An Efficient Particle Tracking Algorithm for Large-Scale Parallel Pseudo-Spectral Simulations of Turbulence
arXiv:2107.01104 · doi:10.1016/j.cpc.2022.108406
Abstract
Particle tracking in large-scale numerical simulations of turbulent flows presents one of the major bottlenecks in parallel performance and scaling efficiency. Here, we describe a particle tracking algorithm for large-scale parallel pseudo-spectral simulations of turbulence which scales well up to billions of tracer particles on modern high-performance computing architectures. We summarize the standard parallel methods used to solve the fluid equations in our hybrid MPI/OpenMP implementation. As the main focus, we describe the implementation of the particle tracking algorithm and document its computational performance. To address the extensive inter-process communication required by particle tracking, we introduce a task-based approach to overlap point-to-point communications with computations, thereby enabling improved resource utilization. We characterize the computational cost as a function of the number of particles tracked and compare it with the flow field computation, showing that the cost of particle tracking is very small for typical applications.
References in corpus (15)
- Computing Nearly Singular Solutions Using Pseudo-Spectral Methods
- Multifractal statistics of Lagrangian velocity and acceleration in turbulence
- P3DFFT: a framework for parallel computations of Fourier transforms in three dimensions
- Collisional Aggregation due to Turbulence
- Scaling of a Fast Fourier Transform and a Pseudo-spectral Fluid Solver up to 196608 cores
- Stochastic Flux-Freezing and Magnetic Dynamo
- Impact of the floating-point precision and interpolation scheme on the results of DNS of turbulence by pseudo-spectral codes
- SoAx: A generic C++ Structure of Arrays for handling Particles in HPC Codes
- Intermittency in the relative separations of tracers and of heavy particles in turbulent flows
- Persistent accelerations disentangle Lagrangian turbulence
- nsCouette -- A high-performance code for direct numerical simulations of turbulent Taylor-Couette flow
- The statistical geometry of material loops in turbulence
- A highly scalable particle tracking algorithm using partitioned global address space (PGAS) programming for extreme-scale turbulence simulations
- How tracer particles sample the complexity of turbulence
- Clustering of passive impurities in MHD turbulence