Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6977 Discussions

Running multiple Pardiso solves concurrently

damienhocking
New Contributor I
520 Views

Hi,

We're using MKL Pardiso inside an optimisation web service on Windows and Linux.  Clients can spin up multiple optimisations in one call to the service, and so we have multiple runs occurring concurrently in the same memory space, with multiple calls to Pardiso, so one might be analysing, another factorising, and another solving, and so on, all at the same time.  Under heavy loads we have crashes from heap corruption, and Pardiso is often in the call stack.

I'm trying to eliminate obvious causes of death here before diving into Inspector runs.  Does Pardiso actually support multiple independent runs and have separate memory for each initialisation and solve, or should we be putting each solve in its own process to protect memory?

Thanks,

Damien 

 

0 Kudos
1 Solution
Gennady_F_Intel
Moderator
520 Views

Damien,  

Pardiso doesn't support multiple independent runs. At the first glance, the runtime issues you describes above, were caused by memory problems while different Pardiso's  handles were calling concurrently in the same memory space.

regards, Gennady

View solution in original post

0 Kudos
4 Replies
Gennady_F_Intel
Moderator
521 Views

Damien,  

Pardiso doesn't support multiple independent runs. At the first glance, the runtime issues you describes above, were caused by memory problems while different Pardiso's  handles were calling concurrently in the same memory space.

regards, Gennady

0 Kudos
damienhocking
New Contributor I
520 Views

OK, thanks for the info.  I thought that might be the case.

Damien

0 Kudos
Andrew_Smith
New Contributor III
520 Views

Is it still the case that PARDISO cannot support multiple independant runs? There is still no indication of this in the version 17 help

0 Kudos
Andrew_Smith
New Contributor III
520 Views

According to the documentation here https://software.intel.com/en-us/node/528539 the whole of MKL is thread safe and any component can be called concurrently. Is this correct or is it an error in documentation?

If Pardiso is not safe then does that apply to the DSS interface to Pardiso?

0 Kudos
Reply