FluidFFT: common API (C++ and Python) for Fast Fourier Transform HPC libraries
Ashwin Vishnu Mohanan, Cyrille Bonamy, Pierre Augier

TL;DR
FluidFFT provides a unified Python API for performing FFT across various libraries and hardware, enabling efficient and scalable Fourier transforms in scientific computing applications.
Contribution
It introduces a comprehensive FFT framework with a common API in Python and C++, supporting multiple libraries and hardware, with benchmarking and performance analysis.
Findings
FluidFFT enables easy switching between FFT libraries and hardware.
The package demonstrates good scalability on different HPC clusters.
Performance benchmarks show fluidfft's efficiency in real-world applications.
Abstract
The Python package fluidfft provides a common Python API for performing Fast Fourier Transforms (FFT) in sequential, in parallel and on GPU with different FFT libraries (FFTW, P3DFFT, PFFT, cuFFT). fluidfft is a comprehensive FFT framework which allows Python users to easily and efficiently perform FFT and the associated tasks, such as as computing linear operators and energy spectra. We describe the architecture of the package composed of C++ and Cython FFT classes, Python "operator" classes and Pythran functions. The package supplies utilities to easily test itself and benchmark the different FFT solutions for a particular case and on a particular machine. We present a performance scaling analysis on three different computing clusters and a microbenchmark showing that fluidfft is an interesting solution to write efficient Python applications using FFT.
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
