Limitations to the Sparse Solver:
Limitations to the FFT Functions:
Deprecation Notice: Those FFT functions listed in chapter 11 under the heading "Fast Fourier Transforms (Deprecated)" will soon be removed from the library. These functions are old and were replaced by DFT API in version 6.0 of Intel MKL released in 2003. They were kept in the library for backward compatibility.
Limitations to the Convolution and Correlation Functions:
Limitations to the Interval Arithmetic Functions:
Limitations to the Multi-precision Function:
DFT, VML, and VSL functions can not be used with Fortran 77 compilers.
On Intel® processors with Intel® EM64T enabled, user programs compiled with the GNU Fortran compiler (version 3.2.3) will likely get incorrect results from those BLAS level 1 functions in Intel® MKL that return single precision values. The GNU Fortran compiler expects REAL*4 values in the first 8 bytes of the return register (just as a double precision value would be represented) while the Intel® Fortran compiler expects REAL*4 values in the first 4 bytes of the return register. The behavior of Intel MKL is compatible with that of the Intel Fortran compiler.
Vector Statistic Library (VSL) limitations for F90/F95:
The F90/F95 interfaces for the VSL functions are defined in the
However, this technique works only for user programs written in the fixed form because
The following workaround should help for the
NOTE: The above solution works similarly for the alternative subroutine-style header file
All VSL functions return error status of current operation, i.e., default VSL API is a function style now rather than a subroutine style used in earlier MKL versions. This means that Fortran users should call VSL routines as functions. For example:
errstatus = vslrnggaussian(method, stream, n, r, a, sigma)rather than subroutines:
call vslrnggaussian(method, stream, n, r, a, sigma)Nevertheless, MKL provides subroutine-style interface for backward compatibility also. To use subroutine-style interface, manually include mkl_vsl_subroutine.fi file instead of mkl_vsl.fi by changing the line include 'mkl_vsl.fi' in includemkl.fi with the line include 'mkl_vsl_subroutine.fi'. VSL API changes don't affect C/C++ users.
Hyper-Threading Technology (HT Technology) is especially effective when each thread is performing different types of operations and when there are under-utilized resources on the processor. Intel MKL fits neither of these criteria as the threaded portions of the library execute at high efficiencies (using most of the available resources) and perform identical operations on each thread. You may obtain higher performance when using Intel MKL without HT Technology enabled.
Memory Allocation: In order to achieve better performance, memory allocated by Intel MKL is not released. This behavior is by design and is a one time occurrence for Intel MKL routines that require workspace memory buffers. Even so, the user should be aware that some tools may report this as a memory leak. Should the user wish, memory can be released by the user program through use of a function (
Memory management has a restriction for the number of allocated buffers in each thread. Currently this number is 32. To avoid this restriction disable memory management as described above.
On Red Hat* Enterprise Linux 3.0, in order to ensure that the correct support libraries are linked, the environment variable LD_ASSUME_KERNEL must be set: For example: 'export LD_ASSUME_KERNEL=2.4.1'
Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.