Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- Pardiso does not scale well in reordering step

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

li__wei

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-20-2018
07:00 PM

166 Views

Pardiso does not scale well in reordering step

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!

Link Copied

6 Replies

Alexander_K_Intel2

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-23-2018
07:58 AM

166 Views

li__wei

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-23-2018
09:32 PM

166 Views

Hi Alexander,

Thanks for reply.

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

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!

Ying_H_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-26-2018
07:44 PM

166 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

li__wei

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-26-2018
10:21 PM

166 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,

Ying_H_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-27-2018
11:56 PM

166 Views

Hi Wei,

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

Thanks

Ying

Gennady_F_Intel

Moderator

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

03-19-2019
10:48 PM

166 Views

the problem has been fixed into version 2019 u3.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.