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.
if you expect to see the same output with multithreading case, then pls try to use CNR mode ( see iparm ). with MKL 2017 v2 ( latest release, 4 weeks ago), I don't see the significant differences between 16, 24 and 32 threads.
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 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 to the number of threads specified in mkl_set_num_thread() do I obtain good performances?
Thanks in advance.