La bibliothèque FFTW
Description
La bibliothèque FFTW est un ensemble de sous-programmes écrits en C, permettant de calculer la transformation de Fourier discrète en une ou plusieurs dimensions, pour des données réelles et complexes.
Versions installées
FFTW est disponible en version parallèle, séquentielle et en version GPU.
Les versions disponibles sur Jean Zay en février 2026 sont les suivantes :
Versions séquentielles
fftw/3.3.8: version 3.3.8fftw/3.3.10: version 3.3.10
Versions parallèles
-
fftw/2.1.5-mpi: version 2.1.5 compilé avec Intel MPI -
fftw/3.3.8-mpi: version 3.3.8 compilé avec Intel MPI -
fftw/3.3.10-mpi: version 3.3.10 compilé avec Intel MPI
Versions GPUs
fftw/3.3.8-mpi-cuda: version 3.3.8 compilé avec OpenMPI, OpenMP et CUDAfftw/3.3.10-mpi-cuda: version 3.3.10 compilé avec OpenMPI, OpenMP et CUDA
Les versions installées sur Jean Zay peuvent être retrouvées par la commande suivante :
module avail fftw
Environnement
Les versions de FFTW sont disponibles dans différents environnements. Pour les lister, utilisez la commande suivante :
module show fftw
Pour utiliser cette bibliothèque dans d'autres environnements, veuillez contacter l'équipe Support aux Utilisateurs.
Pour obtenir les informations sur les chemins d'accès aux librairies, il sera nécessaire de charger au préalable l'environnement choisi. Par exemple :
module load intel-compilers/19.0.4 openmpi/3.1.4-cudamodule show fftwUtilisation
La bibliothèque est accessible par la commande module.
Pour charger la version par défaut dans l'environnement courant (ou dans l'environnement par défaut si aucun environnement n'est préalablement chargé) :
module load fftw
ou pour charger une version spécifique dans un environnement spécifique (Gcc dans cet exemple) :
module load gcc/9.1.0module load fftw/3.3.8-mpi
Édition des liens
Lors de la compilation, il est nécessaire d'ajouter les options référençant les bibliothèques utilisées.
Par exemple, pour la version 2.1.5 :
module load fftw/2.1.5-mpimpiifort appel_fftw.f90 ldrfftw_mpi -ldfftw_mpi -ldrfftw_threads \
-ldfftw_threads -ldrfftw -ldfftw -lpthread -lm
Par exemple, pour la version 3.3.8 :
module load fftw/3.3.8mpiifort appel_fftw.f90 -lfftw3_threads -lfftw3 -lfftw3f_threads \
-lfftw3f -lpthread -lm
Par exemple, pour la version 3.3.8-mpi :
module load fftw/3.3.8-mpimpiifort appel_fftw.f90 -lfftw3_mpi -lfftw3_threads -lfftw3 \
-lfftw3f_mpi -lfftw3f_threads -lfftw3f -lpthread -lm
Par exemple, pour la version 3.3.8-mpi-cuda :
module load fftw/3.3.8-mpi-cudampiifort appel_fftw.f90 -qopenmp -lfftw3_mpi -lfftw3_omp -lfftw3 \
-lfftw3f_mpi -lfftw3f_omp -lfftw3f -lm