Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6956 Discussions

Pardiso does not scale well in reordering step

li__wei
Beginner
1,442 Views

Hi eveyrone,

I have been solving a large symmetric indefinite sparse matrix using Pardiso symmetric solver, with property as below:

< Linear system Ax = b > (Upper half)
             number of equations:           107694
             number of non-zeros in A:      714952
             number of non-zeros in A (%): 0.006164
 
             number of right-hand sides:    1
 
However, it does not scale well in reorder step. Could anyone help?
 
  • thread = 1

reorder: 0.410754 s

factorize: 0.159544 s

solution: 0.047355 s

  • thread = 2

reorder: 0.404389 s

factorize: 0.073979 s

solution: 0.049030 s

  • thread = 4

reorder: 0.417474 s

factorize: 0.054813 s

solution: 0.038233 s

--------------

My laptop has 8 CPU, with details as below:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 60
Stepping:              3
CPU MHz:               2594.000
BogoMIPS:              5188.00
Virtualization:        VT-x
 
 
Detailed information is in attachment.
Thanks for help!

 

 

 

 

0 Kudos
6 Replies
Alexander_K_Intel2
1,442 Views
Hi, Is your matrix have blocked structure? Can you try set iparm[36] to -90 and rerun your test? Thanks, Alex
0 Kudos
li__wei
Beginner
1,442 Views

Hi Alexander,

Thanks for reply.

The matrix is a KKT system from FEM stiffness matrix and lagrange mutipliers. It has structure as below:

O8RSW9A9&#125;3%WOST0{ODI~TD.png

in which A is the n x n stiffness matrix from a FEM structure, Λ is a m x n lagrange multipliers matrix, usually m << n, ε is a very small perturbation.

 When I set the iparm[36] to -90, 

  • thread = 1

reorder time: 0.205429 s

  • thread = 2

reorder time: 0.141978 s

  • thread = 4

reorder time: 0.127079 s

It does scale somehow. Is this desired scalability for Pardiso? 

The Pardiso manual does not mention what iparm[36] is for. What does setting it to -90 mean?

The output files are in attachment.

Btw, the residual is computed from ||Ax - b||2 / ||b||2

  • iparm[36] = 0

residual = 4.208551e-15

  • iparm[36] = -90

residual = 5.733099e-12

Thanks!

 

0 Kudos
Ying_H_Intel
Employee
1,442 Views

Hi Li Wei,
​It looks a problem. Could you provide us your test matrix and command line, a test code will be better. 


​and FYI,  as i mentioned in  topic: https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/777236

  MKL 2018 update 2  have some update about Pardiso routine,  you may try it .

https://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-2018-bug-fixes-list

MKLD-2776 Improved the performance of Intel MKL Pardiso routine in the case of multiple RHS and linking with Intel® Threaded Building Blocks (Intel® TBB) threading layer.

Best Regards,
Ying

 

 

 

0 Kudos
li__wei
Beginner
1,442 Views

Ying H. (Intel) wrote:

Hi Li Wei,
​It looks a problem. Could you provide us your test matrix and command line, a test code will be better. 

​and FYI,  as i mentioned in  topic: https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/...

  MKL 2018 update 2  have some update about Pardiso routine,  you may try it .

https://software.intel.com/en-us/articles/intel-math-kernel-library-inte...

MKLD-2776
Improved the performance of Intel MKL Pardiso routine in the case of multiple RHS and linking with Intel® Threaded Building Blocks (Intel® TBB) threading layer.

Best Regards,
Ying

 

Thanks for your reply! 

Here is the matrix in CSR format. bs is right-hand side vector, row-ptr and col-ind are row and column vectors, val is matrix value.

testPardisoSym.cpp is the code I used to test Pardiso, and makefile.txt(remove .txt) is the makefile I used to compile.

I will try the update 2 to see if scalability improves.

Best,

 

0 Kudos
Ying_H_Intel
Employee
1,442 Views

 

Hi Wei,

Thank you for the test code. I can reproduce the problem with latest version.  Will look into details.

Thanks
Ying

 

 

0 Kudos
Gennady_F_Intel
Moderator
1,442 Views

the problem has been fixed into version 2019 u3.

0 Kudos
Reply