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.