
Security News
Open Source Maintainers Feeling the Weight of the EU’s Cyber Resilience Act
The EU Cyber Resilience Act is prompting compliance requests that open source maintainers may not be obligated or equipped to handle.
Efficient and easy Fast Fourier Transform for Python
Fluidfft provides C++ classes and their Python wrapper classes written in Cython useful to perform Fast Fourier Transform (FFT) with different libraries, in particular
pfft, p3dfft and mpi4py-fft are specialized in computing FFT efficiently on several cores of big clusters. The data can be split in pencils and can be distributed on several processes.
Documentation: https://fluidfft.readthedocs.io
To try fluidfft without installation:
For a basic installation which relies only on a pyFFTW
interface;
or provided you have the optional FFT libaries, that you need, installed
and discoverable in your path (see environment variables LIBRARY_PATH
,
LD_LIBRARY_PATH
, CPATH
) it should be sufficient to run:
pip install fluidfft [--user]
Add --user
flag if you are installing without setting up a virtual
environment.
To take full advantage of fluidfft, consider installing the following (optional) dependencies and configurations before installing fluidfft. Click on the links to know more:
fluiddyn cython pyfftw pythran mpi4py
~/.pythranrc
to customize compilation of Pythran extensions~/.fluidfft-site.cfg
to detect the FFT libraries and install
fluidfft
Note: Detailed instructions to install the above dependencies using Anaconda / Miniconda or in a specific operating system such as Ubuntu, macOS etc. can be found here.
See a working minimal example with Makefile which illustrates how to use the C++ API.
From the root directory:
make tests
make tests_mpi
Or, from the root directory or any of the "test" directories:
pytest -s
mpirun -np 2 pytest -s
Fluidfft provides classes to use in a transparent way all these libraries with an unified API. These classes are not limited to just performing Fourier transforms. They are also an elegant solution to efficiently perform operations on data in real and spectral spaces (gradient, divergence, rotational, sum over wavenumbers, computation of spectra, etc.) and easily deal with the data distribution (gather the data on one process, scatter the data to many processes) without having to know the internal organization of every FFT library.
Fluidfft hides the internal complication of (distributed) FFT libraries and allows the user to find (by benchmarking) and to choose the most efficient solution for a particular case. Fluidfft is therefore a very useful tool to write HPC applications using FFT, as for example pseudo-spectral simulation codes. In particular, fluidfft is used in the Computational Fluid Dynamics (CFD) framework fluidsim.
Fluidfft is distributed under the CeCILL License, a GPL compatible french license.
If you use FluidFFT to produce scientific articles, please cite our metapapers presenting the FluidDyn project and Fluidfft:
FAQs
Efficient and easy Fast Fourier Transform (FFT) for Python.
We found that fluidfft demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The EU Cyber Resilience Act is prompting compliance requests that open source maintainers may not be obligated or equipped to handle.
Security News
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
Research
/Security News
Undocumented protestware found in 28 npm packages disrupts UI for Russian-language users visiting Russian and Belarusian domains.