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

Pardiso # of threads maximum...

Kim__Kyungjoo
Beginner
491 Views

I tested PARDISO and found that IPAM[3] is limited in 8. I tried to use 16 threads, but summary shows that it uses 8.

What should I fix ? 

iparm[FORT(1)] = 1; // 0 - all default, 1 - MUST supply all
iparm[FORT(2)] = 2; // 0 - MMD, 2 - ND METIS
iparm[FORT(3)] = get_num_threads(); // num of threads
iparm[FORT(4)] = 0; // No iterative-direct algorithm
iparm[FORT(5)] = 0; // No user fill-in reducing permutation
iparm[FORT(6)] = 0; // Write solution into x
iparm[FORT(7)] = 0; // Not in use
iparm[FORT(8)] = 0; // num of iterative refinement
iparm[FORT(9)] = 0; // Not in use
iparm[FORT(10)] = 13; // Pivot 13 - non sym 8 sym indefinite
iparm[FORT(11)] = 1; // Scaling 1 - non sym, 0 - sym
iparm[FORT(12)] = 0; // Conjugate transposed/transpose solve
iparm[FORT(13)] = 1; // 1 - normal matching, 2 - advanced
iparm[FORT(14)] = 0; // Output: Number of perturbed pivots
iparm[FORT(15)] = 0; // Not in use
iparm[FORT(16)] = 0; // Not in use
iparm[FORT(17)] = 0; // Not in use
iparm[FORT(18)] = -1; // -1 - report nz in factors
iparm[FORT(19)] = -1; // -1 - report MFlops
iparm[FORT(20)] = 0; // Output: Numbers of CG Iterations
iparm[FORT(21)] = 1; // 0 - 1x1 pivot] 1 - 2x2 bunch-kaufman pivot (default)
iparm[FORT(24)] = 1; // 0 - one level parallel, 1 - two level (default)
iparm[FORT(25)] = 1; // 0 - seq solve] 1 - par solve (default)
iparm[FORT(27)] = 1; // 0) no check, 1) matrix check
iparm[FORT(52)] = 1; // num of dist solver : multi thread only should be 1

cout << "IPARM[FORT(3)] = " << iparm[FORT(3)] << endl;

PARDISO returns like this:

Statistics:
===========
< Parallel Direct Factorization with number of processors: > 8
< Numerical Factorization with BLAS3 and O(n) synchronization >

< Linear system Ax = b >
number of equations: 357889
number of non-zeros in A: 26539009
number of non-zeros in A (%): 0.020720

0 Kudos
8 Replies
Alexander_K_Intel2
491 Views

Hi,
Currently iparm[2] doesn't used. MKL PARDISO by default use env. setting of number of threads. 

With best regards,

Alexander Kalinkin

0 Kudos
Alexander_K_Intel2
491 Views

Hi,

In this topic (http://software.intel.com/en-us/forums/topic/347047#comment-1718453) explain how one can change number of threads used by PARDISO.

With best regards,

Alexander Kalinkin

0 Kudos
Kim__Kyungjoo
Beginner
491 Views

Thank you for the quick answer. I tried both environment variable setup and runtime omp library setup.

However, neither works. 

Statistics:
===========
< Parallel Direct Factorization with number of processors: > 8
< Numerical Factorization with BLAS3 and O(n) synchronization >

< Linear system Ax = b >
number of equations: 357889
number of non-zeros in A: 26539009
number of non-zeros in A (%): 0.020720

number of right-hand sides: 1

< Factors L and U >
number of columns for each panel: 72
number of independent subgraphs: 0
< Preprocessing with state of the art partitioning metis>
number of supernodes: 66609
size of largest supernode: 10455
number of non-zeros in L: 367780045
number of non-zeros in U: 356687962
number of non-zeros in L+U: 724468007
[PARDISO] Analysis completed ...
[PARDISO] Number of perturbed pivots = 0
[PARDISO] Number of peak memory symbolic = 961930
[PARDISO] Number of permenant memory symbolic = 687696
=== PARDISO is running in In-Core mode, because iparam(60)=0 ===
Percentage of computed non-zeros for LL^T factorization
0 % 1 % 2 % 3 % 4 % 5 % 6 % 7 % 8 % 9 % 10 % 11 % 12 % 13 % 14 % 15 % 16 % 17 % 18 % 19 % 20 % 21 % 22 % 23 % 24 % 25 % 26 % 27 % 28 % 29 % 30 % 31 % 32 % 33 % 34 % 35 % 36 % 37 % 38 % 39 % 40 % 41 % 42 % 43 % 44 % 45 % 46 % 47 % 48 % 49 % 50 % 51 % 52 % 53 % 54 % 55 % 56 % 57 % 58 % 59 % 60 % 61 % 62 % 63 % 64 % 65 % ^C
[kyungjoo @nozomi] bench > echo $OMP_NUM_THREADS
16
[kyungjoo @nozomi] bench >

0 Kudos
Kim__Kyungjoo
Beginner
491 Views

Another question: The machine is 2x8 (=16) core machine. Then, does intel compiler think that the machine has maximum 8 threads ? 

0 Kudos
Alexander_K_Intel2
491 Views

Hi,

About changing number of threads for PARDISO solver please see this topic: http://software.intel.com/en-us/forums/topic/347047

With best regards,

Alexander Kalinkin

0 Kudos
Alexander_K_Intel2
491 Views

Hi,

Hi

Will answer in private topic, because problem of posting hyperlinks.

With best regards,

Alexander Kalinkin

0 Kudos
Kim__Kyungjoo
Beginner
491 Views

Thank you. It works now. However, this is tricky. One last question for today: can I interpret the number of supernodes as "number of fronts" ?

< Parallel Direct Factorization with number of processors: > 16

< Preprocessing with state of the art partitioning metis>

number of supernodes: 35204
size of largest supernode: 5671

0 Kudos
Alexander_K_Intel2
491 Views

Hi,

can I interpret the number of supernodes as "number of fronts" ?  No, the supernode has a bit another meaning, its correlate with number of unknowns and matrix structure. 

0 Kudos
Reply