FFTW

in parallel

–enable-threads –with-openmp

http://www.fftw.org/fftw2_doc/fftw_4.html

fftw_threads_test 2 -s 128x128
Test : best number of threads
MPI

mpi enabled version of fftw required (no Fedora system lib available) –enable-mpi

The order of the linked libraries is impotent as always:

-lrfftw_mpi -lfftw_mpi -lrfftw -lfftw -lm
Test : best number of threads
mpirun -np 4 fftw_mpi_test -s 128x128x128 

HPC / Woody

Download the current version of FFTW, unpack it and go to the folder via

mkdir -p "${HOME}/ww8src/fftw"
cd "${HOME}/ww8src/fftw"
wget http://www.fftw.org/fftw-3.3.4.tar.gz
tar -xzf fftw-3.3.4.tar.gz
rm fftw-3.3.4.tar.gz
cd fftw-3.3.4

Subsequently install the package via

./configure --enable-sse2 --enable-avx --enable-shared --prefix "/home/hpc/${GROUP}/${USER}/bin/fftw" CFLAGS="-O3 -fomit-frame-pointer -mtune=native -malign-double -fstrict-aliasing -fno-schedule-insns -ffast-math -mfpmath=both"
make
make install

To see whether everything is working accordingly create a file fftw_test.sh with the contents

#!/bin/bash -l
#
# allocate 16 nodes (64 CPUs) for 1 hours
#PBS -l nodes=1:ppn=4,walltime=01:00:00
#
# job name 
#PBS -N fftw_test
#
# stdout and stderr files
#PBS -o fftw_test.out -e fftw_test.err
#
# first non-empty non-comment line ends PBS options
 
module load gcc/4.8.1
cd "/home/hpc/iww8/${GROUP}/${USER}/fftw/fftw-3.3.4"
make check

and submit it as job via

qsub fftw_test.sh

In the resulting fftw_test.out there should be a line telling you that all basic test for FFTW passed.

Log In