fftw

Numerical Libraries

Software Description

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 .


Info

Module Name

fftw

Last Updated On

11/14/2023

Support Level

Primary Support

Software Access Level

Open Access

Home Page

http://www.fftw.org

Documentation

Software Description

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 .

General Linux

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:

/common/software/install/migrated/fftw/examples

To retrieve, compile, and run all the examples the following commands may be executed:

cp /soft/fftw/examples/* . 
./runme

Agate Modules

Default

3.3.10-openmpi-4.1.5-gcc-8.2.0-hqsg6dp

Other Modules

3.3.10-intel-oneapi-mpi-2021.3.0-gcc-13.1.0-mvavls5, 3.3.10-openmpi-3.1.6-gcc-7.2.0-gziooqw, 3.3.10-openmpi-3.1.6-gcc-7.2.0-holwjem, 3.3.10-openmpi-4.1.5-gcc-7.2.0-m2hj5e7, 3.3.10-openmpi-4.1.5-gcc-8.2.0-6amq6fq, 3.3.10-openmpi-4.1.5-gcc-8.2.0-hqsg6dp, 3.3.10-double-nvhpc-21.1, 3.3.10-double-ompi-4.1.1-gnu-9.2.0, 3.3.10-single-ompi-4.1.1-gnu-9.2.0, 3.3.6-double-impi-intel-2018-release, 3.3.6-double-intel-2018-release, 3.3.6-double-ompi-3.0.0-gnu-7.2.0.CentOS7, 3.3.6-double-ompi-3.1.2-gnu-5.4.0.CentOS7, 3.3.6-double-ompi-3.1.2-gnu-7.2.0.CentOS7, 3.3.6-double-ompi-3.1.2-gnu-8.2.0, 3.3.6-single-ompi-3.1.2-gnu-5.4.0.CentOS7, 3.3.8-double-intel-2019-update1-avx2, 3.3.8-double-intel-2019-update1.CentOS7, 3.3.8-double-mvapich-2.3.5-gnu-8.2.0, 3.3.8-double-ompi-3.1.6-gnu-5.4.0, 3.3.8-double-ompi-3.1.6-gnu-8.2.0, 3.3.8-double-ompi-4.0.0-gnu-8.2.0.CentOS7, 3.3.8-double-ompi-4.0.0-intel-2019-update1-avx2, 3.3.8-double-ompi-4.0.0-intel-2019-update1.CentOS7, 3.3.8-single-mvapich-2.3.5-gnu-8.2.0, 3.3.8-single-ompi-3.1.6-gnu-5.4.0, 3.3.8-single-ompi-3.1.6-gnu-8.2.0, 3.3.8-single-ompi-4.0.0-gnu-8.2.0, 3.3.5-double-impi-5.1.3.223-intel-2016-update3, 3.3.5-double-intel-2016-update3, 3.3.6-double-gnu-7.2.0, 3.3.6-double-impi-5.1.3.223-intel-2016-update3, 3.3.6-double-impi-intel-2018-release, 3.3.6-double-intel-2016-update3, 3.3.6-double-intel-2018-release, 3.3.6-double-intel-2018-release-with-omp, 3.3.6-double-ompi-3.0.0-gnu-7.2.0

Mangi Modules

Default

3.3.10-openmpi-4.1.5-gcc-8.2.0-hqsg6dp

Other Modules

3.3.10-intel-oneapi-mpi-2021.3.0-gcc-13.1.0-mvavls5, 3.3.10-openmpi-3.1.6-gcc-7.2.0-gziooqw, 3.3.10-openmpi-3.1.6-gcc-7.2.0-holwjem, 3.3.10-openmpi-4.1.5-gcc-7.2.0-m2hj5e7, 3.3.10-openmpi-4.1.5-gcc-8.2.0-6amq6fq, 3.3.10-openmpi-4.1.5-gcc-8.2.0-hqsg6dp, 3.3.10-double-nvhpc-21.1, 3.3.10-double-ompi-4.1.1-gnu-9.2.0, 3.3.10-single-ompi-4.1.1-gnu-9.2.0, 3.3.6-double-impi-intel-2018-release, 3.3.6-double-intel-2018-release, 3.3.6-double-ompi-3.0.0-gnu-7.2.0.CentOS7, 3.3.6-double-ompi-3.1.2-gnu-5.4.0.CentOS7, 3.3.6-double-ompi-3.1.2-gnu-7.2.0.CentOS7, 3.3.6-double-ompi-3.1.2-gnu-8.2.0, 3.3.6-single-ompi-3.1.2-gnu-5.4.0.CentOS7, 3.3.8-double-intel-2019-update1-avx2, 3.3.8-double-intel-2019-update1.CentOS7, 3.3.8-double-mvapich-2.3.5-gnu-8.2.0, 3.3.8-double-ompi-3.1.6-gnu-5.4.0, 3.3.8-double-ompi-3.1.6-gnu-8.2.0, 3.3.8-double-ompi-4.0.0-gnu-8.2.0.CentOS7, 3.3.8-double-ompi-4.0.0-intel-2019-update1-avx2, 3.3.8-double-ompi-4.0.0-intel-2019-update1.CentOS7, 3.3.8-single-mvapich-2.3.5-gnu-8.2.0, 3.3.8-single-ompi-3.1.6-gnu-5.4.0, 3.3.8-single-ompi-3.1.6-gnu-8.2.0, 3.3.8-single-ompi-4.0.0-gnu-8.2.0, 3.3.5-double-impi-5.1.3.223-intel-2016-update3, 3.3.5-double-intel-2016-update3, 3.3.6-double-gnu-7.2.0, 3.3.6-double-impi-5.1.3.223-intel-2016-update3, 3.3.6-double-impi-intel-2018-release, 3.3.6-double-intel-2016-update3, 3.3.6-double-intel-2018-release, 3.3.6-double-intel-2018-release-with-omp, 3.3.6-double-ompi-3.0.0-gnu-7.2.0

Mesabi Modules

Default

3.3.10-openmpi-4.1.5-gcc-8.2.0-hqsg6dp

Other Modules

3.3.10-intel-oneapi-mpi-2021.3.0-gcc-13.1.0-mvavls5, 3.3.10-openmpi-3.1.6-gcc-7.2.0-gziooqw, 3.3.10-openmpi-3.1.6-gcc-7.2.0-holwjem, 3.3.10-openmpi-4.1.5-gcc-7.2.0-m2hj5e7, 3.3.10-openmpi-4.1.5-gcc-8.2.0-6amq6fq, 3.3.10-openmpi-4.1.5-gcc-8.2.0-hqsg6dp, 3.3.10-double-nvhpc-21.1, 3.3.10-double-ompi-4.1.1-gnu-9.2.0, 3.3.10-single-ompi-4.1.1-gnu-9.2.0, 3.3.6-double-impi-intel-2018-release, 3.3.6-double-intel-2018-release, 3.3.6-double-ompi-3.0.0-gnu-7.2.0.CentOS7, 3.3.6-double-ompi-3.1.2-gnu-5.4.0.CentOS7, 3.3.6-double-ompi-3.1.2-gnu-7.2.0.CentOS7, 3.3.6-double-ompi-3.1.2-gnu-8.2.0, 3.3.6-single-ompi-3.1.2-gnu-5.4.0.CentOS7, 3.3.8-double-intel-2019-update1-avx2, 3.3.8-double-intel-2019-update1.CentOS7, 3.3.8-double-mvapich-2.3.5-gnu-8.2.0, 3.3.8-double-ompi-3.1.6-gnu-5.4.0, 3.3.8-double-ompi-3.1.6-gnu-8.2.0, 3.3.8-double-ompi-4.0.0-gnu-8.2.0.CentOS7, 3.3.8-double-ompi-4.0.0-intel-2019-update1-avx2, 3.3.8-double-ompi-4.0.0-intel-2019-update1.CentOS7, 3.3.8-single-mvapich-2.3.5-gnu-8.2.0, 3.3.8-single-ompi-3.1.6-gnu-5.4.0, 3.3.8-single-ompi-3.1.6-gnu-8.2.0, 3.3.8-single-ompi-4.0.0-gnu-8.2.0, 3.3.5-double-impi-5.1.3.223-intel-2016-update3, 3.3.5-double-intel-2016-update3, 3.3.6-double-gnu-7.2.0, 3.3.6-double-impi-5.1.3.223-intel-2016-update3, 3.3.6-double-impi-intel-2018-release, 3.3.6-double-intel-2016-update3, 3.3.6-double-intel-2018-release, 3.3.6-double-intel-2018-release-with-omp, 3.3.6-double-ompi-3.0.0-gnu-7.2.0