[Numpy-discussion] Intel MKL 9.1 on Windows (was: Re: VMWare Virtual Appliance...)

Albert Strasheim fullung at gmail.com
Mon Jun 11 21:06:15 EDT 2007


Cancel that. It seems the problems with these two tests are being 
caused by Intel MKL 9.1 on Windows. However, 9.0 works fine.

You basically you have 2 options when linking against MKL on Windows as 
far as the mkl_libs go.

[mkl]
include_dirs = C:\Program Files\Intel\MKL\9.1\include
library_dirs = C:\Program Files\Intel\MKL\9.1\ia32\lib
mkl_libs = mkl_c, libguide40
lapack_libs = mkl_lapack

or

mkl_libs = mkl_c, libguide

I think libguide is the library that contains various thread and OpenMP 
related bits and pieces. If you link against libguide, you get the 
following error when running the NumPy tests:

OMP abort: Initializing libguide.lib, but found libguide.lib already initialized.
This may cause performance degradation and correctness issues.
Set environment variable KMP_DUPLICATE_LIB_OK=TRUE to ignore
this problem and force the program to continue anyway.
Please note that the use of KMP_DUPLICATE_LIB_OK is unsupported
and using it may cause undefined behavior.
For more information, please contact Intel(R) Premier Support.

I think this happens because multiple submodules inside NumPy are 
linked against this libguide library, but this caused some 
initialization code to be executed multiple times inside the same 
process, which shouldn't happen.

If one sets KMP_DUPLICATE_LIB_OK=TRUE, the tests actually work with 
Intel MKL 9.0, but no matter what you do with Intel MKL 9.1, i.e.,

- link against libguide40 or 
- link against libguide and don't set KMP_... or
- link against libguide and set KMP_...

the following tests always segfault:

numpy.core.tests.test_defmatrix.test_casting.check_basic
numpy.core.tests.test_numeric.test_dot.check_matmat

Cheers,

Albert

On Tue, 12 Jun 2007, Albert Strasheim wrote:

> I've set up a 32-bit Windows XP guest inside VMWare Server 1.0.3 on a 64-bit 
> Linux machine and two of the NumPy tests are segfaulting for some strange 
> reason. They are:
> 
> numpy.core.tests.test_defmatrix.test_casting.check_basic
> numpy.core.tests.test_numeric.test_dot.check_matmat
> 
> Do these pass for you? I'm inclined to blame VMWare at this point...



More information about the NumPy-Discussion mailing list