FFTW is a free collection of fast C routines for computing the Discrete Fourier Transform in one or more dimensions. It includes complex, real, and parallel transforms, and can handle arbitrary array sizes efficiently. FFTW is typically faster than other publically-available FFT implementations, and is even competitive with vendor-tuned libraries. To achieve this performance, FFTW uses novel code-generation and runtime self-optimization techniques. The FFTW package was developed at MIT by Matteo Frigo and Steven G. Johnson. More information can be found at the web site: www.fftw.org.
To initialize this software in a Linux environment run the command:
module load fftw
Linking with fftw during compilation is often done with the -lfftw3 flag like:
g++ source_code.cpp -lfftw3
A variety of versions and builds of FFTW, for both single and double precision, are available on MSI systems. Builds are organized in directories by compiler, MPI version, FFTW version, and single or double precision.
Working examples of codes which use threaded and MPI parallel FFTW routines, along with build scripts, are available on high performance systems at:
To retrieve, compile, and run all the examples the following commands may be executed:
cp /soft/fftw/examples/* . ./runme