# Efficiency of Pardiso

## Efficiency of Pardiso

Hi All,

Has anybody compared the efficiency of Pardiso with some other solvers using ILU preconditioner?

In my test, Pardiso takes much more time than the solver using ILU preconditioner. For example, the matrix is 405000*405000 with 18135900 non-zero entries, Pardiso takes 30 seconds to solver it while ILU preconditioner solver (e.g., PETSc) only takes about 0.6 seconds, both using 1 processor. I have tried serveral parameters, but the efficiency is still very bad. Pardiso is designed as a high efficiency solver but what I get is just so so. I wonder if anything is wrong is my codes, the parameters used is as follows:

iparm(2) = 3 ! fill-in reordering from METIS
iparm(3) = 0 ! numbers of processors
iparm(4) = 0 ! no iterative-direct algorithm
iparm(5) = 0 ! 0 no user fill-in reducing permutation
iparm(6) = 0 ! =0 solution on the first n compoments of x
iparm(7) = 0 ! not in use
iparm(8) = 9 ! numbers of iterative refinement steps, default 9
iparm(9) = 0 ! not in use
iparm(10) = 13 ! perturbe the pivot elements,default 13 with 1E-13
iparm(11) = 1 ! use nonsymmetric permutation and scaling MPS
iparm(12) = 0 ! not in use
iparm(13) = 1 ! maximum weighted matching algorithm is switched-on (default for non-symmetric)
iparm(14) = 0 ! Output: number of perturbed pivots
iparm(15) = 0 ! not in use
iparm(16) = 0 ! not in use
iparm(17) = 0 ! not in use
iparm(18) = -1 ! Output: number of nonzeros in the factor LU
iparm(19) = -1 ! Output: Mflops for LU factorization
iparm(20) = 0 ! Output: Numbers of CG Iterations
iparm(27) = 0 ! 1: check matrix error

...

phase = 11 ! only reordering and symbolic factorization
CALL pardiso (pt, maxfct, mnum, mtype, phase, n, a_std, ia, ja_std, idum, nrhs, iparm, msglvl, ddum, ddum, error)

phase = 22 ! only factorization
CALL pardiso (pt, maxfct, mnum, mtype, phase, n, a_std, ia, ja_std, idum, nrhs, iparm, msglvl, ddum, ddum, error)

phase = 33 ! only substitution
CALL pardiso (pt, maxfct, mnum, mtype, phase, n, a_std, ia, ja_std, idum, nrhs, iparm, msglvl, b, x, error)

Is it possible to improve this efficiency?

Thanks and regards,

Daniel

6 posts / novo 0
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

Hi Daniel,

Could I ask you to share a kind of reproducer (including matrix type , OS, processor)? We would like to reproduce the exactly the same way as you and see where the problem is.

If the input matrix is private, please send private message to me.

Best Regards,
Ying

Citação:

Ying H (Intel) escreveu:

Hi Daniel,

Could I ask you to share a kind of reproducer (including matrix type , OS, processor)? We would like to reproduce the exactly the same way as you and see where the problem is.

If the input matrix is private, please send private message to me.

Best Regards,
Ying

Hi Ying,

Thanks for the quick reply, here is the informations.

Matrix type: real unsymmetric sparse matrix, size 405000*405000 with 18135900 non-zero entries.
OS: Windows 7 X64 Pro.
Processor: Intel Xeon E5-2620 2.0GHz, 6cores/12threads
Memory: 16GB
Compiler: Intel Parallel Studio XE 2013, with intel composer xe 2013 update 5

File format in the attachment.
1. The fist value in a.txt, b.txt, ia.txt and ja.txt is the number of data in this file.
2. x_pardiso.txt is the result solved by Pardiso, x_PETSc.txt and x_other.txt are the results solved by PETSc and another solver with ILU preconditioning.

All the results are correct, but the efficiency are quite different, Pardiso is much slower than the other two.

Thanks,

Daniel

The following error occurred when I try to upload the matrix file matrix.7z.

The specified file temporary://p1853bo6fc11ks1bj1157r1944d7h4.tmp could not be copied, because no file by that name exists. Please check that you supplied the correct filename.
The specified file . could not be uploaded. Only files with the following extensions are allowed: 7z avi bmp bz2 c cpp cxx doc docx f for f90 gif gz gzip h i ico icproj img jpeg jpg log m4v mov mp3 mp4 mpeg odp ods odt ogg pdf png pps ppt pptx sln tar tbz2 tgz txt vcproj vcxproj wmv xls xlsx zip.

## Anexos:

AnexoTamanho
56.77 MB

Hi Daniel,

Long time no see! :) PTSc is an iterative solver whereas PARDISO direct one. It is not correct to compare it without additional parameters for matrix - for example iterative methods with ILU preconditioned for good conditioner number converge faster than direct on the other hand direct return near exact solution. For ill condition matrix situation change a bit - converge of iterative solver become poor and direct method return solution quicker (its speed doesn't depend on condition number) but residual can be bad. And, of course, these reasoning depend on preconditioner - so that's a hard to compare this 2 absolutely different approach of solving system of linear equation.

Thanks,

Citação:

Hi Daniel,

Long time no see! :) PTSc is an iterative solver whereas PARDISO direct one. It is not correct to compare it without additional parameters for matrix - for example iterative methods with ILU preconditioned for good conditioner number converge faster than direct on the other hand direct return near exact solution. For ill condition matrix situation change a bit - converge of iterative solver become poor and direct method return solution quicker (its speed doesn't depend on condition number) but residual can be bad. And, of course, these reasoning depend on preconditioner - so that's a hard to compare this 2 absolutely different approach of solving system of linear equation.

Thanks,