Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- Clarification of a part of the Pardiso manual NEEDED

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

xin_xu

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

05-08-2012
03:32 PM

102 Views

Clarification of a part of the Pardiso manual NEEDED

I found the part of the pardiso manual explaining "iparm(31)- partial solution for sparse right-hand sides and sparse solution" confusing. You can find the manual here:http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/index.htm

1) There are emphasises like "the right hand side must be sparse". I suppose this does not mean structurally sparse because the right hand side is passed into pardiso using dense matrix.

2) When iparm(31) = 1, "You can setperm`(i)`= 1 only if the`i`-th component of the right hand side is nonzero." Can I trick the solver by setting the i-th component of the right hand side to 1e-20? I don't understand what the logic is for this constraint.

3) "To useiparm`(31)`=2, you must set the`i`-th component of the right hand side to zero explicitly ifperm`(i)`is not equal to 1." This is related to question 2. And this statement sounds like instructing me to change my equation to be solved because I "must set the`i`-th component of the right hand side to zero explicitly"

4) "Ifiparm`(31)`=3, the right hand side can be of any type and you must setperm`(i)`= 1 to compute the*i*-th component in the solution vector." What "type" do you mean the 'right hand side' can be?

5) "The permutation vectorpermmust be present in all phases of Intel MKL PARDISO software. At the reordering step, the software overwrites the input vectorpermby a permutation vector used by the software at the factorization and solver step. Ifmis the number of components such thatperm`(i)`= 1, then the lastmcomponents of the output vectorpermare a set of the indices`i`satisfying the conditionperm`(i)`= 1 on input."

I have to admit that I am not an experienced user of PARDISO. By reading the above discription, I don't know how to set perm for the partial solve purpose because it will be overwriten by PARDISO at the factorization and solver step.

What is the purpose of "Ifmis the number of components such thatperm`(i)`= 1, then the lastmcomponents of the output vectorpermare a set of the indices`i`satisfying the conditionperm`(i)`= 1 on input"?

Thanks in advance for any help in clarification!!

Regards,

Xin

Link Copied

3 Replies

xin_xu

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

05-11-2012
09:59 AM

102 Views

Sergey_K_Intel1

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

05-18-2012
01:10 AM

102 Views

Yes the right hand side is alwayspassed into pardiso using dense matrix.In thecases of iparm(31)=1 and iparm(31)=2 it is assumed that the right hand side has relatively few non-zero components (e.g. it is sparse). The emphasise "the right hand side must be sparse" onlymeans this structure of the right hand side. The difference between iparm(31)=1 and iparm(31)=2 is the following. In the case of iparm(31)=2, all components of the solution vector are computed and since that all components of the right hand side have to be used for finding the solution. Since thatthe MKLReference Manual says "To useiparm

The setting iparm(31)=3 is quitedifferent from iparm(31)=1 andiparm(31)=2 andit is intended forpartial solve (e.g. for finding selected components of the solution vector). Thenon-zero elements of theperm arrayare used differently andthe perm array is not related to the right hand side. All components of the right hand side are used forcomputing selected components of the solution vector. In this case, the perm arrayis onlyused to indicatewhich components of thesolution vector must be computed.

As concernsyour last question, the purpose ofof "Ifmis the number of components such thatperm

All the best

Sergey

xin_xu

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

05-22-2012
07:52 PM

102 Views

Thanks very much for your patience! It is much clearer now.

The part I am still not sure is the last part. But I think I need to test some cases before I ask further questions on that.

Thanks again & Regards,

Xin

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

For more complete information about compiler optimizations, see our Optimization Notice.