TL;DR
This paper presents a high-performance, pure Python pseudo-spectral DNS code for turbulent flows that nearly matches C++ performance on large supercomputers, demonstrating efficient parallel FFTs and scalability.
Contribution
It introduces a Python-based DNS solver with optimized Cython version, achieving C++-level performance and scalable parallelization for large-scale fluid dynamics simulations.
Findings
Python DNS code nearly matches C++ performance.
Parallel FFTs in Python outperform FFTW routines.
Scalable performance on thousands of cores.
Abstract
Direct Numerical Simulations (DNS) of the Navier Stokes equations is an invaluable research tool in fluid dynamics. Still, there are few publicly available research codes and, due to the heavy number crunching implied, available codes are usually written in low-level languages such as C/C++ or Fortran. In this paper we describe a pure scientific Python pseudo-spectral DNS code that nearly matches the performance of C++ for thousands of processors and billions of unknowns. We also describe a version optimized through Cython, that is found to match the speed of C++. The solvers are written from scratch in Python, both the mesh, the MPI domain decomposition, and the temporal integrators. The solvers have been verified and benchmarked on the Shaheen supercomputer at the KAUST supercomputing laboratory, and we are able to show very good scaling up to several thousand cores. A very…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
