- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I've been running pardiso_64 on several problems. If I change MKL_NUM_THREADS I can quickly notice that the factorization elapsed time goes down.
However, the back-substitution doesn't seem to be affected by the number of threads. Given that I am solving, one right-hand-side at a time, many, many right-hand-side vectors, I would like the back-substitution to also be parallelized.
Do I need to do anything special to get speedup in this phase?
Thanks.
Link Copied
10 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Did you change value of iparm(25)?
With best regards,
Alexander Kalinkin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It's been set to 0 which, according to the documentation,
If iparm(25) = 0 (default value), then PARDISO uses a parallel algorithm for the solve step.
Could it be there's a typo in the documentation and I really need to set it to a non-zero value instead?
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
No, you set iparm correctly. For some matrices parallel solving turn off because of specific internal routine, but such situation happens really rarely. Could you send to me your testcase to reproduce it? And could you provide me information about version of your MKL?
With best regards,
Alexander Kalinkin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Alexander,
I first have to check whether I can share the matrix. It comes from a client.
But even if I could I don't really know how to do it. I have about one million equations, and about 34M non-zeros in the matrix. Should I upload each of the arrays in the argument list to pardiso_64? rowIndex, columns, floating point values, integer parameters?
Please confirm that this is how I should upload the matrix while I check whether I can share the matrix.
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Alexander,
I forgot to mention:
MKLROOT = /opt/intel/composerxe-2011.4.191/mkl
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Artur,
Provide way to send me reproducer in private topic.
With best regards,
Alexander Kalinkin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Alexander,
I am attaching a few files. They are all C binary files, written with fwrite, so you can use fread to read them all back again.
The number of equations is 974337. Note that I'm using PARDISO_64, so all integers are 64-bit integers.
Files are:
iparm.dat: the array of parameters
rowIndex.dat: the rowIndex argument. There are 974338 entries in the array (neq + 1).
columns.dat: the number of entries equals the last argument in the rowIndex array
values.dat: an array of double precision numbers. Same size as columns.dat.
Please let me know if I'm missing something.
Thanks.
Arthur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Arthur
based on your data I can see that you set iparm(5) to 1 that equally to use predefined permuted vector. In such case only serial version of solving step for 1 rhs available.
With best regards,
Roman
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Roman,
Thanks for the feedback.
I have done all reordering outside of Pardiso. All I want is for the ordering array to be 1,2,3,4,...N. The only way I found to do this trivial thing is to set the flag as you mentioned and set the array to these trivial values.
Is there a way in Pardiso to just set the natural ordering and still have a parallel back substitution?
Thanks.
Arthur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Arthur,
In case you use your own reordering and miss reordering phase in Pardiso, the parallel solving is not available.
Regards,
Roman
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page