FFTW 3.3.7

Basic information

  • Official Website: http://www.fftw.org/
  • License: GNU GENERAL PUBLIC LICENSE Version 2
  • Installed on: Apolo II and Cronos
  • Installation date: 10/11/2017

Tested on (Requirements)

  • OS base: CentOS (x86_64) \(\boldsymbol{\ge}\) 6.6 (Rocks 6.2)
  • Dependencies:
    • Intel Compiler >= 2017_update-1
    • Gnu GCC >= 5.5.0
    • Mpich2 >= 3.2.1

Installation

Apolo

  1. Download the desired version of the software (Source code - tar.gz)

    $ cd /home/mgomezzul/apps/fftw/3/intel
    $ wget http://www.fftw.org/fftw-3.3.7.tar.gz
    $ tar xf fftw-3.3.7.tar.gz
    
  2. After unpacking fftw3, continue with the following steps for configuration and compilation:

    $ module unload impi/2017_update-1
    $ module load intel/2017_update-1
    $ module unload slurm
    $ cd fftw-3.3.7
    $ ./configure --prefix=/share/apps/fftw/3.3.7/intel-17.0.1 --build=x86_64-redhat-linux --enable-shared -enable-static -enable-sse2 --enable-avx --enable-avx2 --enable-openmp --enable-threads # Without Floating-point Precision
    $ make clean
    $ ./configure --prefix=/share/apps/fftw/3.3.7/intel-17.0.1 --build=x86_64-redhat-linux --enable-shared -enable-static -enable-sse2 --enable-avx --enable-avx2 --enable-openmp --enable-threads --enable-float # With Floating-point Precision
    $ make -j 16
    $ make check
    $ sudo mkdir -p /share/apps/fftw/3.3.7/intel-17.0.1
    $ sudo chown -R mgomezzul.apolo /share/apps/fftw/3.3.7/intel-17.0.1
    $ make install
    

Cronos

  1. Download the desired version of the software (Source code - tar.gz)

    $ cd /home/mgomezzul/apps/fftw/3/intel
    $ wget http://www.fftw.org/fftw-3.3.7.tar.gz
    $ tar xf fftw-3.3.7.tar.gz
    
  2. After unpacking fftw3, continue with the following steps for configuration and compilation:

    $ module purge
    $ module load mpich2/3.2.1_gcc-5.5.0
    $ /home/mgomezzul/apps/fftw/src/gcc-5.5.0_mpich2-3.2.1
    $ wget http://www.fftw.org/fftw-3.3.7.tar.gz
    $ tar xf fftw-3.3.7.tar.gz
    $ cd fftw-3.3.7
    $ sudo mkdir -p /share/apps/fftw/3.3.7/gcc-5.5.0_mpich2-3.2.1
    $ sudo chown -R mgomezzul.apolo /share/apps/fftw/3.3.7/gcc-5.5.0_mpich2-3.2.1
    

    Version: parallel, threads and double precision floating point

    $ ./configure --prefix=/share/apps/fftw/3.3.7/gcc-5.5.0_mpich2-3.2.1 --build=x86_64-redhat-linux --enable-shared --enable-static --enable-threads --enable-openmp --enable-mpi --enable-sse2 --enable-avx 2>&1 | tee fftw3-conf.log
    $ make -j 16 2>&1 | tee fftw3-make.log
    $ make -j 16 check 2>&1 | tee fftw3-make-check.log
    $ make install 2>&1 | tee fftw3-make-install.log
    

    Version: parallel, “threads” and simple floating point precision

    Note

    The idea is to produce the single and double precision version and install them in the same place as the names of the resulting files are different, making it easier for the user to use them.

    $ make clean
    $ ./configure --prefix=/share/apps/fftw/3.3.7/gcc-5.5.0_mpich2-3.2.1 --build=x86_64-redhat-linux --enable-shared --enable-static --enable-threads --enable-openmp --enable-mpi --enable-sse2 --enable-avx  --enable-single 2>&1 | tee fftw3-conf.log
    $ make -j 16 2>&1 | tee fftw3-make.log
    $ make -j 16 check 2>&1 | tee fftw3-make-check.log
    $ make install 2>&1 | tee fftw3-make-install.log
    $ sudo chown -R root.root /share/apps/fftw/3.3.7/gcc-5.5.0_mpich2-3.2.1
    

Module

#%Module1.0####################################################################
##
## module load fftw/3.3.7_intel-17.0.1
##
## /share/apps/modules/fftw/3.3.7_intel-17.0.1
## Written by Mateo G
##

proc ModulesHelp {} {
    global version modroot
    puts stderr "Sets the environment for using fftw 3.3.7\
                \nin the shared directory \
                \n/share/apps/fftw/3.3.7/intel-17.0.1\
                \nbuilded with gcc-5.4.0"
}

module-whatis "(Name________) fftw"
module-whatis "(Version_____) 3.3.7"
module-whatis "(Compilers___) intel-17.0.1"
module-whatis "(System______) x86_64-redhat-linux"
module-whatis "(Libraries___) "

# for Tcl script use only
set         topdir        /share/apps/fftw/3.3.7/intel-17.0.1
set         version       3.3.7
set         sys           x86_64-redhat-linux

conflict fftw
module load intel/2017_update-1


prepend-path    PATH                    $topdir/bin

prepend-path    LD_LIBRARY_PATH         $topdir/lib
prepend-path    LIBRARY_PATH            $topdir/lib
prepend-path    LD_RUN_PATH             $topdir/lib

prepend-path    C_INCLUDE_PATH          $topdir/include
prepend-path    CXX_INCLLUDE_PATH       $topdir/include
prepend-path    CPLUS_INCLUDE_PATH      $topdir/include

prepend-path    PKG_CONFIG_PATH         $topdir/lib/pkgconfig

prepend-path    MANPATH                 $topdir/share/man

Use

TO-DO

Author

  • Mateo Gómez Zuluaga
  • Juan Pablo Alcaraz Flórez