Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

Number of threads in Pardiso

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