LP64 interface or ILP64 interface library, which one should I link with?
Most users can choose some easy way to link with MKL. Check the article hereon the steps.
Those who use less common interfaces or threading models may want to visit the Link Line Advisor to find the right set of libraries. At Intel 64 bit plat form, they need to choose LP64 interface, or ILP64 interface. The difference between them is integer type length. ILP64 interface uses the 64-bit integer type, while LP64 use the 32-bit integer.
By default, the compilers take integers ( 'int' for C or C++ / 'INTEGER' for Fortran) as 32-bit length. So most applications need link with LP64 MKL libraries.
In a few applications, users may choose MKL 64-bit integer interfaces for some particular purpose (for example, using large array index, which has more than 2^31- 1 elements). They could choose ILP64 MKL libraries. Please note compiling such application need add additional compiler options, for example:
>C or C++: icl /DMKL_ILP64/I\\include > Fortran: ifort /4I8/I\\include