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

Pardiso is much slower than Multi frontal Solver

Tien_Hung_P_
Beginner
799 Views

Hallo

I use Pardiso for solving Matrix which comes from full coupled 3D Biot's equation. For small problem, Pardiso has no problem. However, when size of matrix increases, the problem appears.

Currently, the matrix is around 1e6 x 1e6 (1 mil x 1 mil), and nnz=77589160 (around 77.5 mil). Phase 1 (reordering with iparm(2)=3 does not take too much time, however Phase 2 - Factorization takes so long to finish. In my case, with core i7 - 6800k and 64GB Ram, it took around 10 mins for Phase 2. 

I noticed that the CPU ran only single core. I did some research on Intel forum and found that, the reason came from fill-in process. Then, I tried to compare with Direct Solver of Ansys, which I believe that is Multifrontal solver. Because the finite element mesh was exported from Ansys, so the matrix size is exactly the same. Ansys needed only 64 seconds for everything. Here is log from Ansys.

Here is the log from Pardiso. Pardiso ran single thread, used more memory than Ansys, and much slower. Ansys also used Metis as reordering method. According to this article, Pardiso should be as fast as multifrontal solver. So what is the wrong thing here? What did I wrongly config?

Thank you very much.

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

Pham Hung

 

0 Kudos
3 Replies
Zhen_Z_Intel
Employee
799 Views

Hi Pham,

To your problem, I have few questions would like to check with you.

  1. Did you use OOC  mode for PARDISO ?
  2. I found the num of equation is different from Anasys (980973) that PARDISO is 1007570, there almost 20k difference between two solvers, are you sure you are using totally same input matrix?
  3. Would you mind share your iparm setting and input matrix to us through private message? Thanks.

Best regards,
Fiona

 

0 Kudos
Tien_Hung_P_
Beginner
799 Views

Hi Fiona,

Thank you a lot for your reply

1. The different between number of equations because of constraint boundary conditions. I pretty sure they are the same because I use mesh from Ansys.

2.I use in-core mode, here is my setting for iparm (default is zero)

3. You could download my matrix from here. There are 4 txt files (ia.txt, ja.txt, a.txt, rhs.txt) is row index , col index,  value, and right hand side vector.

Thank you.

Pham Hung

 

0 Kudos
Tien_Hung_P_
Beginner
799 Views

Hallo again,

I tried my problem in Linux (Ubuntu), and Pardiso used all 6 cores for Factorization step. That's really strange.

0 Kudos
Reply