Fortran and C++ specific versions of MKL?

Fortran and C++ specific versions of MKL?

Hi,

I'd like to verify for sure that the version of MKL 11 shipped as part of 'Intel® Visual Fortran Studio XE 2013 for Windows' is also accessible for C++ development (using Visual Studio 2012 and the VS 2012 c++ toolset), or if instead there are Fortran and C++ specific versions of MKL or specific license restrictions?.  From looking at the available downloads, I'm pretty certain there's only a single MKL 11 for Windows, but, nevertheless, would like to have this confirmed.

Many Thanks

8 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

You will have to wait for someone from Intel to give you official confirmation, but I can assure you that MKL is accessible from Fortran, C and other languages, as long as the ABI is followed. I have used many versions of MKL from many versions of Intel Fortran, Compaq Fortran, Intel C, Microsoft C, C++ and other vendors' compilers during a period of over a decade.

There's a "single" version of Intel MKL, callable from Fortran, C, C++, etc., included in Intel Parallel Studio XE 2013, Intel Composer XE 2013 or available standalone.

A standalone version of MKL or MKL included with Intel C++ compilers are Not the same sometimes and you need to keep an eye on MKL updates.

Additional technical details:

>>...From looking at the available downloads, I'm pretty certain there's only a single MKL 11 for Windows, but, nevertheless, would
>>like to have this confirmed...

Please take into account that depending on your hardware different versions of MKL DLLs ( implemented in C/C++/Assembler and highly optimized ) will be used. As an example, here is a list of different MKL DLLs on a Windows platform:
...
mkl_avx.dll
mkl_blacs.dll
mkl_blacs_intelmpi.dll
mkl_blacs_mpich2.dll
mkl_cdft_core.dll
mkl_core.dll
mkl_def.dll
mkl_intel_thread.dll
mkl_p4.dll
mkl_p4m.dll
mkl_p4m3.dll
mkl_p4p.dll
mkl_pgi_thread.dll
mkl_rt.dll
mkl_scalapack_core.dll
mkl_sequential.dll
mkl_vml_avx.dll
mkl_vml_def.dll
mkl_vml_ia.dll
mkl_vml_p4.dll
mkl_vml_p4m.dll
mkl_vml_p4m2.dll
mkl_vml_p4m3.dll
mkl_vml_p4p.dll
...

A specific version of Intel MKL should be the same regardless of whether it's in a bundle or standalone. Naturally Intel MKL 11.0 is different than Intel MKL 11.0 Update 1, which is different than  Intel MKL 11.0 Update 2 (currently shipping).

Hi 'S Anton',

>>I'd like to verify for sure that the version of MKL 11 shipped as part of 'Intel® Visual Fortran Studio XE 2013 for Windows'...

As I already mentioned different releases of MKL could be used in different Intel C++ compiler Updates. Let me give two examples:

1. Intel C++ Compiler XE 12.1.7.371 ( Update 7 ) includes MKL v10.3.12 ( Update 12 ):
...
#define __INTEL_MKL__ 10
#define __INTEL_MKL_MINOR__ 3
#define __INTEL_MKL_UPDATE__ 12
...
So, as you can see Update numbers are Not synchronized and if you need the latest version ( release ) of MKL you need to download a standalone version of MKL and install it.

2. Intel C++ Compiler XE 13.0.0 could be downloaded as Initial Release and there are also two Updates, that is 1 and 2:
...
#if __INTEL_COMPILER_BUILD_DATE == 20120731
...
#pragma message ( "*** Message: Compiling with Intel C++ v13.0.0 ***" )
#endif

#if __INTEL_COMPILER_BUILD_DATE == 20130118
...
#pragma message ( "*** Message: Compiling with Intel C++ v13.0.2 ***" )
#endif
...
and the same rule for the standalone version of MKL is applicable here. I could provide you with exact number for MKL included with Update 2 if you need.

Note: Since I didn't use Update 1 I don't have information for MKL version.

FYI -- please look at this KB article "Which version of the Intel® IPP, Intel® MKL and Intel® TBB Libraries are Included in the Intel® Composer Bundles?' follow this link: http://software.intel.com/en-us/articles/which-version-of-the-intel-ipp-.... The article should be updated because of there are no info about the latest Composer 2013.  

This is a short follow up with additional technical details.

Intel Parallel Studio XE 2013 Update 2 includes MKL v11.0.2 ( Update 2 ) and this is a piece of code from mkl.h header file after MKL Update 2 was installed:
...
#define __INTEL_MKL_BUILD_DATE 20130123

#define __INTEL_MKL__ 11
#define __INTEL_MKL_MINOR__ 0
#define __INTEL_MKL_UPDATE__ 2
...

There is a difference in 5 days ( some kind of inconsistency ) between Build Dates because Intel C++ compiler's Build Date is:
...
...__INTEL_COMPILER_BUILD_DATE == 20130118...
...

Take into account, that __INTEL_MKL_BUILD_DATE > __INTEL_COMPILER_BUILD_DATE and I would expect an opposite, like:

__INTEL_COMPILER_BUILD_DATE >= __INTEL_MKL_BUILD_DATE

in case of Intel Parallel Studio XE 2013 Update 2 since MKL is included in the installer's package ( not opposite ).

I hope that we've provided you with lots of details related to the subject of the post. Thanks.

Leave a Comment

Please sign in to add a comment. Not a member? Join today