If only one thread ever makes calls into MPI, you don't actually need MPI_THREAD_MULTIPLE but only MPI_THREAD_FUNNELED. Open MPI will generally support MPI_THREAD_FUNNELED out of the box (but on certain configurations, mainly platforms without threads, will not), so if you request MPI_THREAD_FUNNELED, it should be returned in provided.
Good luck, Brian > Thanks a lot guys for your help. I am also trying a design where I have > one thread doing MPI and others doing some computation (non-MPI). If I > have only MPI_THREAD_SINGLE enabled for OpenMPI, can I still implement > this kind of a design or there would be issues with threads in OpenMPI. > > -Thanks and Regards, > Sarang. > > Quoting "Brian W. Barrett" <bbarr...@lanl.gov>: > >> There are two ways you can find out if an Open MPI build has >> MPI_THREAD_MULTIPLE support: >> >> * On the command line: You can run "ompi_info | grep Thread". If you >> see >> mpi: no, the build doesn't support MPI_THREAD_MULTIPLE. If you see >> mpi: >> yes, the build does support MPI_THREAD_MULTIPLE. >> >> * At run-time. As mentioned below, if you request >> MPI_THREAD_MULTIPLE and >> provided is only MPI_THREAD_SINGLE, then Open MPI does not have >> MPI_THREAD_MULTIPLE support. >> >> >> Good luck, >> >> Brian >> >> > You are already there. the fact that MPI_Thread_init only provide >> > MPI_THREAD_SINGLE shows that MPI_THREAD_MULTIPLE is NOT enabled in >> the >> > library binary that you're using. Although MPI_THREAD_MULTIPLE is >> > implemented in the library source code, it is only lightly tested, >> so it >> > is >> > not enabled by default. >> > >> > To enable MPI_THREAD_MULTIPLE, you need to recompile the library by >> first >> > including --enable-mpi-threads as one of the parameters when you >> rerun >> > ./configure as the first step of recompiling the library. >> > >> > >> > >> > On 5/27/07, smai...@ksu.edu <smai...@ksu.edu> wrote: >> >> >> >> Hi, >> >> I want to use threads with OpenMPI such that the threads >> would >> >> be able to call MPI functions. For this purpose, I am using >> >> MPI_Init_thread with MPI_THREAD_MULTIPLE option. But this function >> call >> >> returns MPI_THREAD_SINGLE in the "provided" parameter indicating >> that >> >> MPI_THREAD_MULTIPLE is not configured. Somewhere it is mentioned >> that >> >> OpenMPI needs to be configured with --enable-mpi-threads inorder >> to use >> >> MPI_THREAD_MULTIPLE. If true, is it possible to know whether the >> >> OpenMPI (1.1.2)which I have already configured, has the option >> >> "--enable-mpi-threads" already configured or not? Also, how easy >> or >> >> difficult is it to configure --enable-mpi-threads option? >> >> Please share some information on this. >> >> >> >> -Thanks and Regards, >> >> Sarang. >> >> >> >> >> >> _______________________________________________ >> >> 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 >> >> > > >