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

Number of threads in Pardiso

danielsue
Beginner
1,265 Views

Hi all,

I have an odd problem in setting the number of threads in Pardiso. My cpu is Xeon E5-2620, 6 cores 12 threads. I found iparm(3) and MKL_NUM_THREADS (OR OMP_NUM_THREADS) don't take any effect at all. It always use 6 processors.

How can I configure the parameters to let the program use more (or less) processors.

Thanks and regards,

Daniel

0 Kudos
8 Replies
danielsue
Beginner
1,265 Views
My compiler is Intel Parallel Studio XE2013, system is WIN7 X64.
0 Kudos
Alexander_K_Intel2
1,265 Views
Hi Daniel, iparm(3) doesn't support in current version of MKL Pardiso. Did you change value of MKL_DYNAMIC? With best regards, Alexander Kalinkin
0 Kudos
danielsue
Beginner
1,265 Views
Alexander Kalinkin (Intel) wrote:

Hi Daniel,
iparm(3) doesn't support in current version of MKL Pardiso. Did you change value of MKL_DYNAMIC?
With best regards,
Alexander Kalinkin

No, I just use the sample pardiso_unsym_f for testing. Nothing changed except iparm(3) and the environmental variable MKL_NUM_THREADS.
0 Kudos
Alexander_K_Intel2
1,265 Views
Ok. I see. The size of matrix in this example is quite small, so how you check number of threads that PARDISO used? With best regards, Alexander Kalinkin
0 Kudos
danielsue
Beginner
1,265 Views
Hi Alexander, Thanks. I check the number of threads from the output statistics provided by PARDISO, something like: < Parallel Direct Factorization with number of processors: > 6 I will test on a bigger one of 7728*7728 sparse matrix with non-zero elements of 324184. It was solved by other serial method before. This is the case I would like to use pardiso to solve it.
0 Kudos
Alexander_K_Intel2
1,265 Views
Hi Try to input next call: mkl_set_dynamic(0); mkl_set_num_threads(12); before call of PARDISO. With best regards, Alexander Kalinkin
0 Kudos
danielsue
Beginner
1,265 Views
Alexander Kalinkin (Intel) wrote:

Hi
Try to input next call:
mkl_set_dynamic(0);
mkl_set_num_threads(12);
before call of PARDISO.
With best regards,
Alexander Kalinkin

Thanks Alexander. This works.
0 Kudos
Chen_Y_
Beginner
1,265 Views

Alexander Kalinkin (Intel) wrote:

Hi
Try to input next call:
mkl_set_dynamic(0);
mkl_set_num_threads(12);
before call of PARDISO.
With best regards,
Alexander Kalinkin

I have several questions about the mkl pardiso.

1. Why the number of threads used is less than that was assigned. I assigned the number of threads as you said above.

2. the maximum size of matrix that pardiso could solve? now i have a matrix of size 250000*250000, i have a computer of 48 threads.

as i said in 1, it only used 24 threads even i assigned 48 threads.

3. i don't know is it necessary for me to use the  cluster_sparse_solver instead of pardiso and then run the code on cluser? for my matrix, will it be faster on cluster using cluster_sparse_solver ?

Thank you very much!

Chen Yang

0 Kudos
Reply