The MKL library from Intel has a number of "wrapper" routines. The wrapper routines allow MKL routines to be called as would routines from other libraries. The table below lists classes of wrapper routines. That is it lists libraries that MKL can emulate.

Some of the external library routines are built into MKL directly. Some require additional libraries to be built to act as the wrapping routines.

One important computational area that is supported in MKL is Fourier Transforms. There are wrapper routines for the commonly used versions of the FFT routines known as fftw. Both fftw2 and fftw3 are supported. (fftw2 has been deprecated in favor of fftw3 and should not be used in new programs.)

We have built a number of the wrapper libaries to support additional FFT routines. These include:

Most of these are discussed below. However, we do need to make note of some particular versions which we have built.

  1. These were all built using the Intel compilers.
  2. The *_cdft_* libraries were built using the OpenMPI version of MPI.
  3. _single_/Single _double_/Double indicate that the real values are either single or double precision.
  4. *_ilp64.a libraries use 8 byte integers. See https://software.intel.com/en-us/node/528682
  5. *_lp64.a libraries use 4 byte integers. See https://software.intel.com/en-us/node/528682

These libraries are on both Mio and AuN in:

/opt/intel/mkl/lib/intel64/fftw

The script that was used to create these libraries, rebuild, is in the same directory and also available here. This script will be useful if you want to modify the build options. If you go to the directories show in the script and just type build your will be given a list of options.

We have a number of examples that show how to call fftw routines and how to compile and link applications against these libraries. The library directory also contains a tar ball, examples.tgz, with these examples and it is available here as well. Please see the README file.

File name Contains
Libraries, in Intel MKL architecture-specific directories
libmkl_blas95.a1 Fortran 95 wrappers for BLAS (BLAS95) for IA-32 architecture.
libmkl_blas95_ilp64.a1 Fortran 95 wrappers for BLAS (BLAS95) supporting LP64 interface.
libmkl_blas95_lp64.a1 Fortran 95 wrappers for BLAS (BLAS95) supporting ILP64 interface.
libmkl_lapack95.a1 Fortran 95 wrappers for LAPACK (LAPACK95) for IA-32 architecture.
libmkl_lapack95_lp64.a1 Fortran 95 wrappers for LAPACK (LAPACK95) supporting LP64 interface.
libmkl_lapack95_ilp64.a1 Fortran 95 wrappers for LAPACK (LAPACK95) supporting ILP64 interface.
libfftw2xc_intel.a1 Interfaces for FFTW version 2.x (C interface for Intel compilers) to call Intel MKL FFTs.
libfftw2xc_gnu.a Interfaces for FFTW version 2.x (C interface for GNU compilers) to call Intel MKL FFTs.
libfftw2xf_intel.a Interfaces for FFTW version 2.x (Fortran interface for Intel compilers) to call Intel MKL FFTs.
libfftw2xf_gnu.a Interfaces for FFTW version 2.x (Fortran interface for GNU compiler) to call Intel MKL FFTs.
libfftw3xc_intel.a2 Interfaces for FFTW version 3.x (C interface for Intel compiler) to call Intel MKL FFTs.
libfftw3xc_gnu.a Interfaces for FFTW version 3.x (C interface for GNU compilers) to call Intel MKL FFTs.
libfftw3xf_intel.a2 Interfaces for FFTW version 3.x (Fortran interface for Intel compilers) to call Intel MKL FFTs.
libfftw3xf_gnu.a Interfaces for FFTW version 3.x (Fortran interface for GNU compilers) to call Intel MKL FFTs.
libfftw2x_cdft_SINGLE.a Single-precision interfaces for MPI FFTW version 2.x (C interface) to call Intel MKL cluster FFTs.
libfftw2x_cdft_DOUBLE.a Double-precision interfaces for MPI FFTW version 2.x (C interface) to call Intel MKL cluster FFTs.
libfftw3x_cdft.a Interfaces for MPI FFTW version 3.x (C interface) to call Intel MKL cluster FFTs.
libfftw3x_cdft_ilp64.a Interfaces for MPI FFTW version 3.x (C interface) to call Intel MKL cluster FFTs supporting the ILP64 interface.


File name Contains
Modules, in architecture- and interface-specific subdirectories of the Intel MKL include directory
blas95.mod1 Fortran 95 interface module for BLAS (BLAS95).
lapack95.mod1 Fortran 95 interface module for LAPACK (LAPACK95).
f95_precision.mod1 Fortran 95 definition of precision parameters for BLAS95 and LAPACK95.
mkl95_blas.mod1 Fortran 95 interface module for BLAS (BLAS95), identical to blas95.mod. To be removed in one of the future releases.
mkl95_lapack.mod1 Fortran 95 interface module for LAPACK (LAPACK95), identical to lapack95.mod. To be removed in one of the future releases.
mkl95_precision.mod1 Fortran 95 definition of precision parameters for BLAS95 and LAPACK95, identical to f95_precision.mod. To be removed in one of the future releases.
mkl_service.mod1 Fortran 95 interface module for Intel MKL support functions.
1Prebuilt for the IntelĀ® Fortran compiler
2FFTW3 interfaces are integrated with Intel MKL. Look into 
"mkl directory"/interfaces/fftw3x*/makefile for options defining 
how to build and where to place the standalone library with the 
wrappers.

Reference: https://software.intel.com