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

OpenMP and pardiso


Hi - I am using OpenMP to parallelize a Do loop

If the Do loop extends from s=1 to s=50 iterations, and there are two threads, Fortran automatically divides the iterations into two blocks s=1 to s=25 for one thread and s=26 to s=50 for another thread.

Due to race condition, one thread finishes faster than the other thread. So lets say 1st thread finishes s=25 , when the other thread is at s = 43, both the threads just stop. The second thread should have continued on till it reaches s=50. But it doesnt, it stops completely.

On closer look, I noticed that the other thread reaches the part of the code where PARDISO is called upon and just stops without giving any error.  Is there any reason why Pardiso can't be called upon by the other thread  when the first thread has finished its set of iterations ?


0 Kudos
1 Reply
Hi, If you set all parameters correctly (for example pt need to be private and so on) then PARDISO must work correctly. Could you prepare small testcase to reproduce it on our side? With best regards, Alexander Kalinkin
0 Kudos