Iam looking for something to help me understand my program's pthread(s) section. The program right now runs on with pthread, butit appears to have many deadlocks.I used vtune to check for this and they - the deadlocks - appear to be there according to vtune. Anyway, the presence of pthreads is making the program loose it parallelism; so I want to remove the pthreads and replace with something else such as OPENMP, MPI or Cilk. But, of course, I must at first get rid of the pthreads.
Iunderstand pthreads, but I have little understanding of the specifics in the how they are used in my prgram. It is very complex.I thought that some software such as TBB could help in understanding howpthredas are used.
Deadlocks are not typically caused by threading model. Instead, they are caused by coding issues within the threading model. Migrating from one threading model to another would not remove the deadlock by design (but could as a side effect of you walking through your code). I would suggest you determine the cause of the deadlocks first, correct it/them, then consider porting to different thread model.