|
Article ID: 204
Last updated: 19 Jun, 2018
FFTW is a free collection of C routines for computing the discrete Fourier Transform (DFT) in one or more dimensions, and provides portability across platforms. The Intel Math Kernel Library (MKL) offers FFTW2 (for version 2.x) and FFTW3 (for version 3.x) interfaces to the Intel MKL Fast Fourier Transform and Trigonometric Transform functionality. These interfaces enable applications using FFTW to gain performance with Intel MKL without changing the application source code. Some users have installed FFTW in their own directories (for example, /u/username/fftw). If you choose to install these routines, you will link to the FFTW library as follows:
Note: The application programming interface of FFTW 3.x is incompatible with that of FFTW 2.x. The MKL InterfacesThe MKL interfaces are available in the form of source files (under /nasa/intel/Compiler/[Version]/mkl/interfaces), which can be built into libraries and then linked when you compile your application. Starting with Intel MKL release 10.2 (which was distributed in the Intel Compiler 11.1.x package), the FFTW3 interfaces are integrated into the MKL main libraries for ease of use. If you load an Intel compiler module (for example, comp-intel/2018.0.128), the above example of linking to an FFTW3 library in a user's directory can be changed to, for example:
TIP: The FFTW3 interfaces do not support long double precision because Intel MKL FFT functions operate only on single- and double-precision floating point data types. This means that the functions with prefix fftwl_, supporting the long double data type, are not provided. The interfaces have other limitations, as well. For more information, see the Intel Math Kernel Library documentation.
The older FFTW2 interfaces are not integrated into the MKL main libraries. For your convenience, we have built four interface libraries for every version of the Intel compiler:
Here, "single" and "double" refer to floating point numbers. These four libraries were built with Intel's default choice of 4-byte integer precision. So, the above example of linking to an FFTW2 library in a user's directory can be changed to the following, assuming single precision:
|