Hi Ashika, Yes you can serialize the call using pthead mutex if you have created threads using pthreads. Basically whatever thread libray you are using for thread creation provides synchronization API's which you have to use here.
OPAL_THREAD_LOCK and UNLOCK code is also implemented using supported thread library on your platform(selected by default during configure or use --with-threads). You can't use OPAL library as it is not exported to outside MPI programming world. Regards Neeraj Chourasia (MTS) Computational Research Laboratories Ltd. (A wholly Owned Subsidiary of TATA SONS Ltd) B-101, ICC Trade Towers, Senapati Bapat Road Pune 411016 (Mah) INDIA (O) +91-20-6620 9863 (Fax) +91-20-6620 9862 M: +91.9225520634 Ashika Umanga Umagiliya <auma...@biggjapan.com> Sent by: users-boun...@open-mpi.org 09/18/2009 09:25 AM Please respond to Open MPI Users <us...@open-mpi.org> To Open MPI Users <us...@open-mpi.org> cc Subject Re: [OMPI users] Multi-threading with OpenMPI ? Thanks Ralph, I have not much experience in this area.shall i use pthread_mutex_lock(*),*pthread_mutex_unlock() ..etc or following which i saw in OpenMPI source : static opal_mutex_t ompi_lock; OPAL_THREAD_LOCK(&ompi_lock); // OPAL_THREAD_UNLOCK(&ompi_lock); Thanks in advance, umanga Ralph Castain wrote: > Only thing I can suggest is to place a thread lock around the call to > comm_spawn so that only one thread at a time can execute that > function. The call to mpi_init_thread is fine - you just need to > explicitly protect the call to comm_spawn. > > > On Sep 17, 2009, at 7:44 PM, Ashika Umanga Umagiliya wrote: > >> HI Jeff, Ralph, >> >> Yes, I call MPI_COMM_SPAWN in multiple threads simultaneously. >> Because I need to expose my parallel algorithm as a web service, I >> need multiple clients connect and execute my logic as same time(ie >> mutiple threads). >> For each client , a new thread is created (by Web service framework) >> and inside the thread,MPI_Init_Thread() is called if the MPI hasnt >> been initialized. >> The the thread calls MPI_COMM__SPAWN and create new processes. >> >> So ,if this is the case isn't there any workarounds ? >> >> Thanks in advance, >> umanga >> >> >> Jeff Squyres wrote: >>> On Sep 16, 2009, at 9:53 PM, Ralph Castain wrote: >>> >>>> Only the obvious, and not very helpful one: comm_spawn isn't thread >>>> safe at this time. You'll need to serialize your requests to that >>>> function. >>>> >>> >>> >>> This is likely the cause of your issues if you are calling >>> MPI_COMM_SPAWN in multiple threads simultaneously. Can you verify? >>> >>> If not, we'll need to dig a little deeper to figure out what's going >>> on. But Ralph is right -- read up on the THREAD_MULTIPLE >>> constraints (check the OMPI README file) to see if that's what's >>> biting you. >>> >> >> _______________________________________________ >> users mailing list >> us...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/users > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users _______________________________________________ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users =====-----=====-----===== Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Internet communications cannot be guaranteed to be timely, secure, error or virus-free. The sender does not accept liability for any errors or omissions.Thank you =====-----=====-----=====