FFTW3

Using FFTW on SeaWulf

Overview

FFTW (Fastest Fourier Transform in the West) is a highly optimized library for computing discrete Fourier transforms (DFTs). On SeaWulf, multiple versions of FFTW are available across different clusters, optimized for various compilers and MPI configurations.

Available Modules on SeaWulf

Below are the available FFTW modules for Skylake, Milan, and Haswell nodes:

Skylake Nodes

  • fftw3/mvapich2/gcc12.1/3.3.10

Milan Nodes

  • fftw3/mvapich2/gcc12.1/3.3.10

Haswell Nodes

  • fftw2/openmpi/gcc/64/double/2.1.5
  • fftw3/mvapich2/3.3.8-float
  • fftw2/openmpi/gcc/64/float/2.1.5
  • fftw3/openmpi/gcc/64/3.3.7
  • fftw3/mvapich2/3.3.8

Loading a Module

To use the appropriate FFTW module for your cluster, use the module load command. For example, to load the FFTW module for Skylake using MVAPICH2 and GCC 12.1, you can run:

module load fftw3/mvapich2/gcc12.1/3.3.10

Make sure to load the module that is appropriate for your cluster and desired configuration (e.g., MPI and compiler version).

Using FFTW

Once the module is loaded, you can begin compiling and running your FFTW-based programs. Here is an example of how to compile a program using FFTW:

mpicc -o my_fftw_program my_fftw_program.c -lfftw3

Ensure that your program links to the correct FFTW libraries based on the module you loaded.

Important Notes

FFTW on SeaWulf is optimized for high-performance parallel computing. Be sure to select the correct MPI configuration and library version for your needs to maximize performance.

Incompatible versions of FFTW, MPI, or compilers can lead to errors or degraded performance. Always ensure you load the proper module for your application.

Additional Resources

If you encounter any issues or need further assistance, please consult the SeaWulf documentation or reach out to the support team for guidance on using FFTW and other software libraries.