- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We have recently upgraded to version 11.0.2 from version 10.1.1. We are finding that pardiso is typically around 10% slower in 11.0.2 than it was previously. The matrix is not too large for this problem (~2000 rows). Is this to be expected or should I send an example?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
If you notice the performance is better in mkl version 10.1.1, then we should investigate further. Please send me an example testcase and I'll escalate the issue to engineering team after I reproduce the issue
Thank you,
Sridevi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have attached a visual studio project that I have been using to test this. It reads in a matrix and right hand side vector in and then calls pardiso a number of times to get an accurate timing result. This is then repeated 10 times to check it is reproduced. The only thing to change apart from the dlls between versions is the name of the function for getting the version string.
This test reproduces the slow down we have been seeing in our actual software.
Regards,
Euan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I did reproduce the problem and I'm submiting a ticket for this to Engineering Team.I'll update you the status/comments on the issue
Thanks,
Sridevi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Euan,
Quick investigation of your code shows that you call PARDISO with phase 13 in loop without any memory release. It's an incorrect pardiso using that could on small matrix allow to behavior you mentioned. Could you check performance results with correct using of pardiso?
With best regards,
Alexander Kalinkin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Alexander,
Your suggestion doesn't fix the problem. You are right that I should be releasing the memory. In our production code we do, but I forgot this when creating the test program. Releasing the memory does improve performance, but by a similar amount in both versions so the performance drop is still there. I've attached the new results. I changed the call in the loop to do the following.
[csharp]phase = 13;
IntelMathLibrary.Pardiso(
pt,
ref maxfct,
ref mnum,
ref mtype,
ref phase,
ref numberOfRows,
nonZeroValues,
rowIndices,
columnIndices,
perm,
ref nrhs,
pardisoIparam,
ref msglvl,
rhs,
result,
ref error);
phase = -1;
IntelMathLibrary.Pardiso(
pt,
ref maxfct,
ref mnum,
ref mtype,
ref phase,
ref numberOfRows,
nonZeroValues,
rowIndices,
columnIndices,
perm,
ref nrhs,
pardisoIparam,
ref msglvl,
rhs,
result,
ref error);[/csharp]
Regards,
Euan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is there any further news on this problem?
Regards,
Euan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is this problem still being investigated? It has been quite some time with no replies.
Regards,
Euan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I escalated this issue to our engineering team and our engineers have provided some comments:
We reproduced this issue on releases noticed in the title of this issue. We spent a lot of effort to improve both performance and stable of pardiso code in last years by modification of reference code. Because PARDISO work with sparse matrix and its performance depend on pattern of matrix from release to release we could obtain performance degradation on several matrices. The number of this matrix small and number of cases with performance degradation need to be smaller than number of tests case with performance improvement. Moreover, number of test with performance degradation about 5 percent needs to be lower than 5 percent of overall number of tests. Additional requirement – no performance degradation on test that was provided by customer
Can you please provide your benchmark. In spite of all above requirements sometimes we obtain example of matrices with performance degradation between distant releases. This issue is a member from this sequences. We see the degradation but can’t improve situation because of huge changing in correspondent code. Can you please provide way of using pardiso in your code to try find out a workaround of this issue.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page