my ompi_info says (openmpi) Threading support: No Does that mean it's not supported?
If so, what to do? On 13 February 2014 17:00, Matthias Troyer <tro...@phys.ethz.ch> wrote: > > > > > > On Feb 13, 2014, at 17:44, MM <finjulh...@gmail.com> wrote: > > On 13 February 2014 15:33, Matthias Troyer <tro...@phys.ethz.ch> wrote: > >> Hi, >> >> In orders to use MPI in a multi-threaded environment, even when only one >> thread uses MPI, you need to request the necessary level of thread support >> in the environment constructor. Then you'd an check whether your MPI >> implementation supports multi threading. Note that using MPI the way you do >> need not work even though it seems safe at first sight. One reason is that >> your MPI implementation might use threads internally to support, e.g. >> nonblocking calls and those threads might not be compatible with your >> threads. >> >> Matthias >> >> So in my case, as I have a main thread that doesn't call MPI, and another > purposely created user thread to call MPI lib, the mode is > MPI_THREAD_FUNNELLED ? > > as boost 1.54 doesn't have the level in the enviroment ctor, I need to > explicitly call the underlying MPI::Init_thread(MPI_THREAD_FUNNELED). > once I move to 1.55, I'll use the env ctor. > > > > You need MPI_THREAD_SERIALIZED since it is not the main thread which is > doing the MPI communication. Be sure to check whether that level is > actually supported. > > Matthias > > > _______________________________________________ > Boost-mpi mailing list > boost-...@lists.boost.org > http://lists.boost.org/mailman/listinfo.cgi/boost-mpi > >