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 & Restrictions

FFTW is available without restriction to all OSC Users

The following versions of FFTW are available on OSC systems:

Version Glenn Oakley
2.1   X**
2.1.5 X  
3.1.2 X  
3.3 X* X**
3.3.1 X*  
3.3.2 X**  

*gnu versions only, **intel version only

Usage

Set-up

Initalizing the system for use of the FFTW library is dependent on both the system you are using and the compiler you are using. Some of the installations on Glenn also depend on the version of MPI you are using. A successful build of your program will depend on an understanding of what module fits your circumstances. To load the default FFTW3 library, run the following command:

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 on Oakley.
$FFTW3_FFLAGS Use during your compilation step for Fortran programson Oakley.
$FFTW3_LIBS Use during your link step on Oakley for the sequential version of the library.
$FFTW3_LIBS_OMP Use during your link step on Oakley for the OpenMP version of the library.
$FFTW3_LIBS_MPI Use during your link step on Oakleyfor the MPI version of the library.
$FFTW_CFLAGS Use during your compilation step for C programs on Glenn.
$FFTW_FFLAGS Use during your compilation step for Fortran programs on Glenn.
$FFTW_LIBS Use during your link step on Glenn for the sequential version of the library.
$FFTW_MPI_LIBS Use during your link step on Glenn for the MPI version of the library.

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

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

Service: