fftw Overview

The ”Fastest Fourier Transform in the West” (FFTW) is a C subroutine library for computing the Discrete Fourier Transform (DFT) in one or more dimensions, of both real and complex data, and of arbitrary input size. Many benchmarks show that FFTW’s performance is typically superior to that of other publicly available FFT software. Moreover, FFTW’s performance is portable: the program will perform well on most architectures without modification.

Support

Usage

On OLCF systems, some FFTW library versions are provided by Cray and some are provided by the OLCF itself. In either case, FFTW is accessed via a module. For more information on Cray FFTWs, please see the intro_fft man page online; i.e., do a man intro_fft. This will give you information on how to use Cray’s FFTW and some other FFT libraries. In particular, there are intro_fftw2 and intro_fftw3 man pages for FFTW2 and FFTW3, respectively. C:
module avail fftw
module load fftw/2.1.5
cc -o example example.c -ldfftw
For the OLCF-built FFTW3 libraries, you have to load the appropriate module and then the compilers will automatically find include and library files. These are probably not as highly optimized as the Cray FFTW libraries. C:
module avail fftw
module load fftw/3.1.2
cc -o example example.c
The following information is available by running module help fftw
  FFTW 3.3.0.0
  ============

    Purpose:
    --------
      FFTW 3.3.0.0 contains a number of added features and performance improvements including:
        * Support for AVX instructions
        * MPI distributed transform
        * Support for AMD-specific FMA4 instructions.
      For complete release notes please see http://www.fftw.org/release-notes.html.

    Product and OS Dependencies:
    ----------------------------
      The FFTW 3.3.0.0 release is supported on Cray XT and XE systems running the CLE operating systems.

    Documentation:
    --------------
      http://www.fftw.org/index.html#documentation

    Installation
    ------------
      rpm -ivh fftw-3.3.0.0-2.x86_64.rpm

      To make this the default version, execute:
        /opt/cray/admin-pe/set_default_files/set_default_fftw_3.3.0.0

To re-display fftw/3.3.0.0 release information,
type:    less /opt/fftw/3.3.0.0/release_info
Builds

SUMMIT

  • fftw@3.3.5%gcc@4.8.5+openmp
  • fftw@3.3.5%xl@20171023-beta+openmp
  • fftw@3.3.5%pgi@17.9+openmp

RHEA

  • fftw@3.3.5%gcc@4.4.7
  • fftw@3.3.5%gcc@5.3.0
  • fftw@3.3.5%gcc@5.3.0
  • fftw@3.3.5%gcc@4.4.7