FFTW

Introduction

FFTW is a C library which implements very efficient methods for the computation of the Fast Fourier Transform for real or complex data, in 1, 2, 3 or multiple dimensions; the library can also compute sine and cosine transforms and the Hartley transform. An MPI capability is also built in. Data is not required to have a size that is a power of 2.

The project web site is: http://www.fftw.org/ .

The online reference may be found at: http://www.fftw.org/fftw3.pdf .

Availability

Version 3.3.5 of FFTW is available on the ARC cluster Cascades. Version 3.3.4 is available on DragonsTooth and NewRiver. Version 3.3 is available on BlueRidge, HokieOne, and HokieSpeed. To check the latest information on available versions on any ARC cluster, type "module spider fftw".

Usage

Using FFTW on an ARC cluster requires several module commands. A typical set for NewRiver might be:

      module purge
      module load gcc/5.2.0
      module load openmpi/1.8.5
      module load fftw/3.3.4

At compilation time, it will be necessary to invoke the symbol $FFTW3_INC for the include file, and $FFTW3_LIB for the library.

Example

Here is an example batch file for the ARC NewRiver cluster that could be used to compile and run a program that invokes FFTW.

#! /bin/bash
#PBS -l walltime=00:05:00
#PBS -l nodes=1:ppn=1
#PBS -W group_list=newriver
#PBS -q open_q
#PBS -j oe

cd $PBS_O_WORKDIR

module purge
module load gcc/5.2.0
module load openmp/1.8.5
module load fftw/3.3.4

gcc -c -I$FFTW3_INC fftw_test.c
gcc -o fftw_test fftw_test.o -LFFTW3_LIB -lfftw3
./fftw_test

A complete set of files to carry out a similar example calculation are available in a tar file