Why does PARDISO get wrong result when parallel reordering for METIS(iparm(28)) is set to 1?
I tried to embed PARDISO to our project and I tried to set iparm(28) to 1 to parallel reordering the matrix, but the solver obtained wrong results. The iprams and the benchmarking matrix is as below. Is there any issue I should consider for setting iparm(28)? Thanks a lot...
iparms : iparm = 2; iparm = atoi(thread_num);//mkl_get_max_threads(); iparm = 0; /* No iterative-direct algorithm */ iparm = 0; /* No user fill-in reducing permutation */ iparm = 0; /* Write solution into b */ iparm = 0; /* Not in use */ iparm = 0; /* Max numbers of iterative refinement steps */ iparm = 0; /* Not in use */ iparm = 13; /* Perturb the pivot elements with 1E-13 */ iparm = 1; /* Use nonsymmetric permutation and scaling MPS */ iparm = 0; /* Not in use */ iparm = 1; /* Maximum weighted matching algorithm is switched-on (default for non-symmetric) */ iparm = 0; /* Output: Number of perturbed pivots */ iparm = 0; /* Not in use */ iparm = 0; /* Not in use */ iparm = 0; /* Not in use */ iparm = 0; iparm = 0; iparm = 0; /* Output: Numbers of CG Iterations */ iparm = 1; /* Parallel Numerical Factorization */ iparm = 1; /* Parallel Forward/Backward Solve */
//iparm = 1;
maxfct = 1; /* Maximum number of numerical factorizations. */ mnum = 1; /* Which factorization to use. */ msglvl = 1; /* Print statistical information in file */ error = 0; /* Initialize error flag */
one of the cause of such behaviormay be, if iparm(28) == 1 ( iparm in C notation),then the input arrays (matrix a, vectors x and b) as well as all
internal arrays are supposed to be in single precision.
So, it seems the argument table is different from PARDISO 4.0.0? In PARDISO version 4.0.0, it says iparm(28) stands for parallel reordering for METIS, this is different from the meaning of controlling single/double precision.