If you want all threads to communicate via MPI, and your initially launching multiple parents, I don't really see the advantage of using threads at all. Why not launch 12 MPI processes?
On Tue, 2009-09-22 at 10:32 -0700, Eugene Loh wrote: > guosong wrote: > > Thanks for responding. I used a linux cluster. I think I would like > > to create a model that is multithreaded and each thread can make MPI > > calls. I attached test code as follow. It has two pthreads and there > > are MPI calls in both of those two threads. In the main function, > > there are also MPI calls. Should I use a full multithreading? > I guess so. It seems like the created threads are expected to make > independent/concurrent message-passing calls. Do read the link I > sent. You need to convert from MPI_Init to MPI_Init_thread(), asking > for a full-multithreaded model and checking that you got it. Also > note in main() that the MPI_Isend() calls should be matched with > MPI_Wait() or similar calls. I guess the parent thread will sit in > such calls while the child threads do their own message passing. Good > luck. > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users