- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Ihave beenreading the PARDISO documentation and was just hoping for some clarification of a point regarding these two settings. In particular, under the description of MAXFCT, one finds the sentence:
"Matrices with a different sparsity structure can be kept in memory with different memory address pointers PT."
In my application, I have four large sparse systems which are solved repeatedly (i.e., solve system 1, then system 2, then system 3, then system 4, then back to the top to solve system 1 again, ...); though the coefficients of some of the systems change somewhat between successive solves of that system, the sparsity patterns remain the same, but are different from system to system (i.e., system i's coefficients may change somewhat, but it's sparsity pattern is constant and different from that of system j if i and j are not equal). It seems that the best way to attack such a problem is to use PARDISO's direct-iterative preconditioning CGS solver as described at the top of page 2511 of the MKL Reference Manual. To implement this, I gather that I must:
a)save the pointer array PT (and possibly permutation array PERM)for each system
b) set PHASE = 13 the first time each system is solved, andPHASE = 23on subsequent solves
c) not call PARDISO with PHASE = -1 until after the last solve
However, what I am not clear on is the following: in this case, should I use MAXFCT = 4 and assign a number MNUM to each system, or should I be using MAXFCT = 1 = MNUM for each system, since the sparsity pattern, and thus the pointer array PT, are different for each? Thanks.
Lee
Ihave beenreading the PARDISO documentation and was just hoping for some clarification of a point regarding these two settings. In particular, under the description of MAXFCT, one finds the sentence:
"Matrices with a different sparsity structure can be kept in memory with different memory address pointers PT."
In my application, I have four large sparse systems which are solved repeatedly (i.e., solve system 1, then system 2, then system 3, then system 4, then back to the top to solve system 1 again, ...); though the coefficients of some of the systems change somewhat between successive solves of that system, the sparsity patterns remain the same, but are different from system to system (i.e., system i's coefficients may change somewhat, but it's sparsity pattern is constant and different from that of system j if i and j are not equal). It seems that the best way to attack such a problem is to use PARDISO's direct-iterative preconditioning CGS solver as described at the top of page 2511 of the MKL Reference Manual. To implement this, I gather that I must:
a)save the pointer array PT (and possibly permutation array PERM)for each system
b) set PHASE = 13 the first time each system is solved, andPHASE = 23on subsequent solves
c) not call PARDISO with PHASE = -1 until after the last solve
However, what I am not clear on is the following: in this case, should I use MAXFCT = 4 and assign a number MNUM to each system, or should I be using MAXFCT = 1 = MNUM for each system, since the sparsity pattern, and thus the pointer array PT, are different for each? Thanks.
Lee
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, Lee!
PARDISO can process several matrices with identical matrix sparsity pattern and store the factors of these matrices at the same time. In this case one and the same memory address pointers PT can be used for storing LU structure and LU values for all the matrices. Note that because LU structures for such matrices are the same so PARDISO can keep only one of them (if the same memory address pointer PT is used). Consequently, parameters MAXFCT and MNUM make sense for the memory address pointer PT but not for the matrices solved by PARDISO at the same time with different memory address pointers PT.
So you should use MAXFCT=MNUM=1 for each system (i.e. each memory address pointer PT).
With best regards,
Sergey
PARDISO can process several matrices with identical matrix sparsity pattern and store the factors of these matrices at the same time. In this case one and the same memory address pointers PT can be used for storing LU structure and LU values for all the matrices. Note that because LU structures for such matrices are the same so PARDISO can keep only one of them (if the same memory address pointer PT is used). Consequently, parameters MAXFCT and MNUM make sense for the memory address pointer PT but not for the matrices solved by PARDISO at the same time with different memory address pointers PT.
So you should use MAXFCT=MNUM=1 for each system (i.e. each memory address pointer PT).
With best regards,
Sergey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sergey,
Thank you very much.
Lee

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