User Tools

Site Tools


support:hpc:software:fftw

Fastest Fourier Transform in the West

FFTW is a fast, free C FFT library that includes real-complex, multidimensional, and parallel transforms.

We have installed the latest stable FFTW v3.1.2 code. This library resides in /share/apps/fftw-3.1.2

We have also installed an older version (primarily for Gromacs) in /share/apps/fftw-2.1.5

Prerequisites

Below is a list of prerequisites for using GROMACS:

Installed Versions

We support the following versions of the FFTW library:

  • FFTW 3.1.2 (single precision, double precision, and long-double precision)
  • FFTW 2.1.5

Using

The FFTW libraries are compiled with gfortran (not g77). This means that you should also be using gfortran. To link to a FFTW library you should first select the version you wish to use. Some codes have not been ported to FFTW3 so you should use 2.1.5

For serial jobs:

module load compilers/pathscale-3.2 \
            math/fftw-3.1.2 \
            blas/acml-4.1.0-pathscale \
            md/gromacs-3.3.3

For MPI jobs:

module load compilers/pathscale-3.2 \
            math/fftw-3.1.2 \
            blas/acml-4.1.0-pathscale \
            mpi/openmpi-1.2.6-pathscale-3.2
            md/gromacs-3.3.3-openmpi-1.2.6

To use the command line completion aspects of your shell you can run the following (depending on your shell):

# for bash:
source `which completion.bash`
# for csh and tcsh:
source `which completion.csh`
# for zsh:
source `which completion.zsh`

Building

We built GROMACS using the following options.

Version 3.3.3

The process for building v3.3.3 is slightly different for MPI-enabled GROMACS and GROMACS without MPI support. The first two steps are different but the rest of the build and install process is the same.

Configure without MPI Support

First the following modules should be loaded:

$ module load compilers/pathscale-3.2 \
            math/fftw-3.1.2 \
            blas/acml-4.1.0-pathscale

Then run the following configure command:

$ ./configure CC=pathcc \
              CXX=pathCC \
              F77=pathf90 \
              CFLAGS="-O3 -OPT:Ofast -L/share/apps/fftw-3.1.2/lib -L/share/apps/acml-4.1.0/pathscale64/lib" \
              LIBS=-lacml \
              CPPFLAGS=-I/share/apps/fftw-3.1.2/include \
             --prefix=/share/apps/gromacs-3.3.3 \
             --with-fft=fftw3 \
             --with-pic \
             --with-external-lapack \
             --with-external-blas

Configure with MPI Support

First load the following modules:

$ module load compilers/pathscale-3.2 \
            math/fftw-3.1.2 \
            blas/acml-4.1.0-pathscale \
            mpi/openmpi-1.2.6-pathscale-3.2

Then run the following configure command:

$ ./configure CC=pathcc \
              CXX=pathCC \
              F77=pathf90 \
              CFLAGS="-O3 -OPT:Ofast -L/share/apps/fftw-3.1.2/lib -L/share/apps/acml-4.1.0/pathscale64/lib" \
              LIBS=-lacml \
              CPPFLAGS=-I/share/apps/fftw-3.1.2/include \
             --prefix=/share/apps/gromacs-3.3.3 \
             --with-fft=fftw3 \
             --with-pic \
             --with-external-lapack \
             --with-external-blas \
             --enable-mpi

Build and Install

Then build, test, and install the binaries and documentation.

$ make
$ make mdrun
$ sudo make install
$ sudo make install-mdrun
$ wget ftp://ftp.gromacs.org/pub/tests/gmxtest-3.3.3.tgz
$ tar zxf gmxtest-3.3.3.tgz
$ make tests
All 16 simple tests PASSED
FAILED. Check files in dec+water
1 out of 14 complex tests FAILED
All 63 kernel tests PASSED
All 45 pdb2gmx tests PASSED
$

:!: Note: the failed dec+water test is normal see this page.

Documentation

There is documentation for GROMACS on their website as well as in man pages (once you load the GROMACS module). There also appears to be some documentation and tutorials in the $GMXHOME/share/gromacs directory.

Fastest Fourier Transform in the West

We have installed the latest stable FFTW v3.1.2 code. This library resides in /share/apps/fftw-3.1.2

We have also installed the latest alpha version 3.2alpha3 into /share/apps/fft-3.2alpha3

We have also installed an older version (primarily for Gromacs) in /share/apps/fftw-2.1.5

Build Notes

Both version 3.1.2 and 3.2alpha3 were built using the following process.

$ tar zxvf fftw-3.1.2.tar.gz
$ cd fftw-3.1.2
$ export F77="pathf90" CFLAGS="-O2 -OPT:Ofast" CC="pathcc"
$ ./configure --enable-type-prefix --enable-float --prefix=/share/apps/fftw-3.1.2 --enable-shared
$ make
$ sudo make install

Version 2.1.5 (required for Gromacs) was built using the following process.

$ tar zxvf fftw-2.1.5.tar.gz
$ cd fftw-2.1.5
$ export CC=pathcc CFLAGS="-O2 -OPT:Ofast"
$ ./configure --enable-type-prefix --enable-float --prefix=/share/apps/fftw-2.1.5
$ make
$ sudo make install

Use

module load math/fftw-3.1.2
support/hpc/software/fftw.txt · Last modified: 2008/11/10 15:36 by sbeards