FFTW

FFTW is a C subroutine library for computing the Discrete Fourier Transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data. It is portable and performs well on a wide variety of platforms.

Availability and Restrictions

Versions

FFTW is available on Ruby, and Owens Clusters. The versions currently available at OSC are:

Version Owens Pitzer Ascend
3.3.4 X    
3.3.5 X    
3.3.8  X* X*  
3.3.10 X X X*
NOTE: FFTW2 and FFTW3 are tracked separately in the module system

You can use module spider fftw2  or module spider fftw3  to view available modules for a given machine. Feel free to contact OSC Help if you need other versions for your work.

Access

FFTW is available to all OSC users. If you have any questions, please contact OSC Help.

Publisher/Vendor/Repository and License Type

www.fftw.org, Open source

Usage

Usage on Owens

Set-up

Initalizing the system for use of the FFTW library is dependent on the system you are using and the compiler you are using. A successful build of your program will depend on an understanding of what module fits your circumstances. To load a particular version, use  module load name . For example, use  module load fftw3/3.3.4  to load FFTW3 version 3.3.4. You can use module spider fftw  to view available modules.

Building with FFTW

The following environment variables are setup when the FFTW library is loaded:

Variable Use
$FFTW3_CFLAGS Use during your compilation step for C programs.
$FFTW3_FFLAGS Use during your compilation step for Fortran programs.
$FFTW3_LIBS Use during your link step for the sequential version of the library.
$FFTW3_LIBS_OMP Use during your link step for the OpenMP version of the library.
$FFTW3_LIBS_MPI Use during your link step for the MPI version of the library.
$FFTW3_LIBS_THREADS Use during your link step for the "threads" version of the library.

below is a set of example commands used to build a file called my-fftw.c .

module load fftw3
icc $FFTW3_CFLAGS my-fftw.c -o my-fftw $FFTW3_LIBS 
ifort $FFTW3_FFLAGS more-fftw.f -o more-fftw $FFTW3_LIBS

Usage on Pitzer

Set-up

Initalizing the system for use of the FFTW library is dependent on the system you are using and the compiler you are using. A successful build of your program will depend on an understanding of what module fits your circumstances. To load a particular version, use  module load fftw3/.

Building with FFTW

The following environment variables are setup when the FFTW library is loaded:

VARIABLE USE
$FFTW3_CFLAGS Use during your compilation step for C programs.
$FFTW3_FFLAGS Use during your compilation step for Fortran programs.
$FFTW3_LIBS Use during your link step for the sequential version of the library.
$FFTW3_LIBS_OMP Use during your link step for the OpenMP version of the library.
$FFTW3_LIBS_MPI Use during your link step for the MPI version of the library.

below is a set of example commands used to build a file called my-fftw.c .

module load fftw3
icc $FFTW3_CFLAGS my-fftw.c -o my-fftw $FFTW3_LIBS 
ifort $FFTW3_FFLAGS more-fftw.f -o more-fftw $FFTW3_LIBS

Usage on Ascend

Set-up

Initalizing the system for use of the FFTW library is dependent on the system you are using and the compiler you are using. A successful build of your program will depend on an understanding of what module fits your circumstances. To load a particular version, use  module spider fftw3 to check what other modules need to be loaded first. Use  module load [module name and version] to load the necessary modules. Then use  module load fftw3 to load the default FFTW module version.

Building with FFTW

The following environment variables are setup when the FFTW library is loaded:

VARIABLE USE
$FFTW3_CFLAGS Use during your compilation step for C programs.
$FFTW3_FFLAGS Use during your compilation step for Fortran programs.
$FFTW3_LIBS Use during your link step for the sequential version of the library.
$FFTW3_LIBS_OMP Use during your link step for the OpenMP version of the library.
$FFTW3_LIBS_MPI Use during your link step for the MPI version of the library.

below is a set of example commands used to build a file called my-fftw.c .

module load fftw3
icc $FFTW3_CFLAGS my-fftw.c -o my-fftw $FFTW3_LIBS 
ifort $FFTW3_FFLAGS more-fftw.f -o more-fftw $FFTW3_LIBS

Further Reading

See Also

Supercomputer: 
Service: