Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

Number of threads in Pardiso

danielsue
Beginner
341 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
341 Views
My compiler is Intel Parallel Studio XE2013, system is WIN7 X64.
Alexander_K_Intel2
341 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
danielsue
Beginner
341 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.
Alexander_K_Intel2
341 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
danielsue
Beginner
341 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.
Alexander_K_Intel2
341 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
danielsue
Beginner
341 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.
Chen_Y_
Beginner
341 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

Reply