We were using composer_xe_2013.2.146 and noticed a problem recently. The pardiso solver worked for 4, 6, or 8 cpu but failed for 10 or 12 cpu. Then we update to parallel_studio_xe_2016.2.062, but find another problem.
Our application has a number of non-symmetric matrices A1, A2, A3, A4, etc with the same non-zero pattern. Some of them are also numerically quite close. So we use pardiso solver and some time turn on the cgs iterative option (iparm(4) = 61). The program looks like the following
1) initialize pardiso and symbolic factorization (phase=11)
2) Solve A1 directly with phase=23 and iparm(4) = 0
3) Solve A2 directly with phase=23 and iparm(4) = 0
4) Solve A3 using cgs with phase=33 and iparm(4)=61
5) Solve A4 directly with phase=23 and iparm(4)=0 ( pardiso skip numerical factorization and return wrong solution!!!)
The problem is also in parallel_studio_2016.1.056. It is reproducible. It failed at the first 2 examples we tried.
Dong, I am not sure I understand the problem: when you solve only one separate case ( let say A1) did you obtain wrong solution with iparm(4) == 0 and when iparm(4) == 61?
Gennady, Error only happens at step 5 in my example. That is, using cgs we got the right solution. After using cgs (iparm(4)=61) when we get a new matrix and we ask pardiso to do factorization again (phase=23 with iparm(4)=0), pardiso skips the factorization step and directly uses the old L&U to do the solution step.
To produce the error has to have at least three steps after initialization. 1) Solve A1 directly (phase=23, iparm(4)=0). 2) Solve A2 using cgs (phase=33, iparm(4)=61). 3) Solve A3 directly (phase=23, iparm(4)=0) to see the error.