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

Wrong results from Pardiso solver with multi-threading

Fanny_D_
Beginner
296 Views

Hi,

I'm having problems with multi-threading in the Pardiso solver.

For a given sparse matrix (csr format in mat.txt) and right hand side (rhs.txt) I obtain a different and wrong solution with a number of threads equal or greater than 16.

I'm working on windows 7 and I'm compiling with the compiler C++ Visual Studio 2013 and the MKL 11.3 Update 4 (Intel Parallel Studio XE 2016 Update 4). I'm linking with the librairies: mkl_intel_lp64, mkl_intel_thread, mkl_core and libiomp5md.


Could you reproduce the problem? or is there a mistake in my Pardiso usage?


Attached please find my program (./test_mt.exe nb_threads).

Thanks in advance for your help.

Best regards.

 

0 Kudos
2 Replies
Gennady_F_Intel
Moderator
296 Views

if you expect to see the same output with multithreading case, then pls try to use CNR mode ( see iparm[33] ). with MKL 2017 v2 ( latest release, 4 weeks ago), I don't see the significant differences between 16, 24 and 32 threads. 

0 Kudos
Fanny_D_
Beginner
296 Views

Thanks for this information.

My original problem was that the results obtained with 16 (24 or 32) threads were wrong and completely different from those obtained with 1 thread and 8 threads.

Do you observe the same?

If I set iparm[33] to the desired number of threads n_threads (i.e threads specified in mkl_set_number_threads()) I obtain with n_threads=16 good results.

Could you please explain the consequences on performances? If I set iparm[33] to the number of threads specified in mkl_set_num_thread() do I obtain good performances?

Thanks in advance.

Best regards.

 

 

 

0 Kudos
Reply