OpenMP and pardiso

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 ?


2 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

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

Connectez-vous pour laisser un commentaire.