Threaded version of Pardiso

Threaded version of Pardiso

We are using Intel Visual Fortran Composer XE 2011 with MKL library, and we trying to solve large matrices using pardiso using multithread enabled but it's not working. When runing mkl_get_max_threads() it shows only 2 instead of 4 even if we use call mkl_set_num_threads(4) it still shows 2 and we can see from Task Manager that not all the threads are working 100% just 20% and only sometime...

We set

iparm(2) = 3 ! fill-in reordering from METIS

iparm(3) = 4 ! numbers of processors

This is runing on Intel Core i7 with 2 Cores and 4 Threads 

Can anyone please advise why this is not working?

Thanks in advance.

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Currently, iparm(3) is not supported in Intel MKL PARDISO. Do not use it to set the number of threads. Instead, you should use either the support function mkl_set_num_threads, or the environment variable MKL_NUM_THREADS.

Please try this before you call pardiso:

mkl_set_dynamic(0);
mkl_set_num_threads(4);

Let us know if it works.You can also check the output statistics from PARDISO to see how many threads are actually used. You'd look for a line in the output that starts with "< Parallel Direct Factorization with number of processors: >".

Leave a Comment

Please sign in to add a comment. Not a member? Join today