Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Jens_E_
New Contributor I
161 Views

Intel MKL + Win81 hyperV

Hi,

Are there any known issues with Win81 running on a virtual (Win81) machine (Hyper V), and MKL (pardiso specifically) ?

I get the following message when executing pardiso: 

Intel MKL INTERNAL ERROR: Not enough work memory in function xgemm

And, it seems this does not cause pardiso to return with an error code.

I have increased the available memory on the machine well beyond the amount that the application seems to require on the system monitor when run on an actual machine.

Best,

Jens

0 Kudos
6 Replies
Jens_E_
New Contributor I
161 Views

Oh, and also, this is followed by an exception (std::bad_alloc) which I guess is why pardiso does not return an error.

Zhang_Z_Intel
Employee
161 Views

As a performance oriented library, MKL is typically not to be used in a virtualized environment. As far as I know, it's not been tested/validated on any virtual machines. Are there any particular reason you need to use MKL on virtual machines?

Vamsi_S_Intel
Employee
161 Views

MKL prints the above mentioned message (Intel MKL INTERNAL ERROR: Not enough work memory in function xgemm) when it cannot find memory for temporary buffers used in computations. This does not always mean that the computation is wrong. In most cases, we have fall-back code paths that would still return the correct results but at a much lower performance. I suspect this might be the case for you.

There has been a change in this behavior starting from MKL 11.2.2. Starting from this release, MKL does not print an error message on the screen when memory allocation fails and computations are correct. It does not print any warning message neither, but we are planning to do this when MKL_VERBOSE mode is turned ON in the near future.

mecej4
Black Belt
161 Views

The comments in #4 suggest that the context of the run, i.e., a virtual machine, may have little bearing on the error message and that, in fact, the same code run on a native Windows installation would generate the same message. Jens, can you post a small example source code to enable the error to be reproduced?

Jens_E_
New Contributor I
161 Views

Thanks all for replies, here are some follow-up comments

Re #3: I only need to run it in a virtualized environment in order to test the application on different platforms. I get this message on only one of many tests. The only distinguishing thing about this particular test is that it requires significant memory (about 1GB when I run it on my own physical computer).

Re #4, #5: I checked the same test when run on a physical computer, and there is no error message then. Also, as I mentioned in #2 an exception is thrown (std::bad_alloc) on the virtual machine, so it is a real error.

#5: Unfortunately it is difficult to debug this example, and also difficult to come up with a minimum failing example. I use pardiso as part of a large finite element application, and the error shows up only for this larger large model, and only in win81 on a virtual machine ...

 

Best,

Jens

mecej4
Black Belt
161 Views

Have you configured your virtual machine to provide enough memory for running your program? I have used Vmware and Xen, but not Hyperv, so I do not know about its parameters.

Reply