Aller au contenu principal

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.8
  • fftw/3.3.10: version 3.3.10

Versions parallèles

  • fftw/2.1.5-mpi: version 2.1.5 compilé avec Intel MPI

    attention

    Cette ancienne version (plus de 10 ans) n'est pas compatible avec les versions plus récentes et n'est pas utilisable sur les partitions GPU A100 gpu_p5 et H100 gpu_p6 !

  • 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 CUDA
  • fftw/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.

Remarque

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 fftw

Utilisation

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  

Documentation

📝 Page d'accueil de FFTW