OMP Error #15: Initializing libguide40.dll, but found libiomp5md.dll already initialized

Symptom(s):
OMP: Error #15: Initializing libguide40.lib, but found libiomp5md.lib already initialized.

or vice versa message
This can cause performance degradation.

Set environment variable KMP_DUPLICATE_LIB_OK=TRUE if you want your program to continue in this case.

Cause:

Both libiomp5md.dll and libguide40.dll are Intel OpenMP Runtime library. The libiomp5md.dll is new Intel OpenMP* Compatibility library while the libguide40.dll is legacy OpenMP library. Since Intel® MKL 10.1.0.018 and Intel® Compiler 11.x and later,  the default OpenMP runtime library for Intel MKL has been changed from libguide to libiomp.  Please see </en-us/articles/openmp-support-change>
 
The error is caused by multiple OpenMP libraries were linked in same application. For example, you have two mkl versions MKL 10 and MKL 10.2.1 are linked in same appliation. The error arises because of the duplicate initialization of OpenMP Runtime library from MKL 10 which link libguide40 and MKL 10.2.1 which use libiomp5md .

Please note, the libguide40.dll sometimes were linked implicitly, e.g. by third-party library, custom dll or by dummy library mkl_c.lib in previous MKL version.

Solution:

Please remove one of them and keep only one OpenMP runtime library.

We recommend using and distributing libiomp5md.dll (located in the \bin directory), as libguide40 will be obsolete.

For the third-party library or custom dll which have used the libguide40.dll from pervious MKL version, in order to avoid such kind of issue, we strongly recommend rebuild your library with libiomp5md.dll and check if the third-party library has some version with libiomp5md.dll supported.

Otherwise, Otherwise, set environment variable KMP_DUPLICATE_LIB_OK=TRUE  to ignore the library conflict.

See similiar article for Intel® IPP

For more complete information about compiler optimizations, see our Optimization Notice.

Comments

Dear all,

Dear all,

Thanks for your feedback. We try to workaround the issue by appealing to every developers to use one OpenMP. But it is hard actually, for example, we need to check the third-party to upgrade new version if possible.

If you have any special issue, please report to MKL forum or premier.intel.com, we may work with you case by case.

WBR,
Ying


These instructions are for software developers so they can recompile their software to avoid this error. Unfortunately I'm experiencing the same problem with Corel VideoStudio X5 Ultimate. After a clean install I receive this error message and it won't run. Ultimately Intel should have coded the libiomp5md.dll so that it wouldn't care if libguide40.dll is running, but they didn't and now us consumers are left trying to figure out how to solve the problem. I'm beginning to understand why Macs are gaining in popularity!


I am having this problem all of a sudden and it's affecting my work...

"Solution:

Please remove one of them and keep only one OpenMP runtime library.

We recommend using and distributing libiomp5md.dll (located in the bin directory), as libguide40 will be obsolete.

For the third-party library or custom dll which have used the libguide40.dll from pervious MKL version, in order to avoid such kind of issue, we strongly recommend rebuild your library with libiomp5md.dll."

Is all very well but to someone like me that is just jibberish. Any chance you could explain how to do the above in extremely simple english with a step by step guide? Would be hugely appreciated.