Community
cancel
Showing results for 
Search instead for 
Did you mean: 
damienhocking
New Contributor I
69 Views

Running multiple Pardiso solves concurrently

Jump to solution

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
69 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

4 Replies
Gennady_F_Intel
Moderator
70 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

damienhocking
New Contributor I
69 Views

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

Damien

Andrew_Smith
New Contributor II
69 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

Andrew_Smith
New Contributor II
69 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?

Reply