Libraries |
FFTW Math LibraryFFTW is a portable, free, high performance FFT library which implements arbitrary radix, serial and multiple dimensional transforms in serial or parallel (MPI and POSIX threads models). One unique aspect of FFTW is its optional use of self-optimizing strategies, whereby subsequent calls become faster by building on previous timings. Wrapper functions provide a Fortran API to this native C library. Since many parallel codes use single precision FFTs in order to halve the communication required we provide both single and double precision libraries. Select the precision by using the proper prefix to the library "d" for double (8 byte) and "s" for single (4 byte) floating point numbers. For detailed information on how FFTW is built on NERSC machines see this script. How to use the FFTW libraryOn Franklin, to use fftw/2.1.5 (default version), users need to include the corresponding include file according to the code type, FFT type, precision type, and also link with the correct library (please see table below): % module load fftw % ftn ... -lcorrect_library % cc ... -lcorrect_library % CC ... -lcorrect_library
% module load fftw/3.1.1 % ftn ... or % cc ... or % CC ... % module load fftw % $(CC) $FFTW -lsfftw -lm ... or % $(F77) $FFTW -lsfftw ... or % $(F90) $FFTW -lsfftw ... or % $(MPICC) $FFTW -lsfftw_mpi -lsfftw -lm ... % module load fftw % $(CC) $FFTW -ldfftw -lm ... or % $(F77) $FFTW -ldfftw ... or % $(F90) $FFTW -ldfftw ... or % $(MPICC) $FFTW -ldfftw_mpi -ldfftw -lm ... Example ProgramsIn your code you should select the proper include file "dfftw.h" or sfftw.h" in the same way as above. The FFTW include files will then properly define types like "fftw_complex" as being of the appropriate precision.
DocumentationFor FFTW on-line documentation in HTML format, see the FFTW website . |
![]() |
Page last modified: Tue, 26 Feb 2008 01:28:20 GMT Page URL: http://www.nersc.gov/nusers/resources/software/libs/math/fft/fftw/ Web contact: webmaster@nersc.gov Computing questions: consult@nersc.gov Privacy and Security Notice |
![]() |