Pardiso # of threads maximum...

Pardiso # of threads maximum...

Kyungjoo K.的头像

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

9 帖子 / 0 new
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项
Alexander Kalinkin (Intel)的头像

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

With best regards,

Alexander Kalinkin

Alexander Kalinkin (Intel)的头像

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

Kyungjoo K.的头像

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 >

Kyungjoo K.的头像

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

Alexander Kalinkin (Intel)的头像

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

Alexander Kalinkin (Intel)的头像

Hi,

Hi

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

With best regards,

Alexander Kalinkin

Kyungjoo K.的头像

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

Alexander Kalinkin (Intel)的头像

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. 

登陆并发表评论。