Kewl - I’ll fix. Thanks!
> On Dec 9, 2014, at 12:32 AM, Pascal Deveze <pascal.dev...@bull.net> wrote: > > Hi Ralph, > > This in in the trunk. > > De : devel [mailto:devel-boun...@open-mpi.org] De la part de Ralph Castain > Envoyé : mardi 9 décembre 2014 09:32 > À : Open MPI Developers > Objet : Re: [OMPI devel] Patch proposed: opal_set_using_threads(true) in > ompi/runtime/ompi_mpi_init.c is called to late > > Hi Pascal > > Is this in the trunk or in the 1.8 series (or both)? > > > On Dec 9, 2014, at 12:28 AM, Pascal Deveze <pascal.dev...@bull.net > <mailto:pascal.dev...@bull.net>> wrote: > > > In case where MPI is compiled with --enable-mpi-thread-multiple, a call to > opal_using_threads() always returns 0 in the routine btl_xxx_component_init() > of the BTLs, event if the application calls MPI_Init_thread() with > MPI_THREAD_MULTIPLE. > > This is because opal_set_using_threads(true) in ompi/runtime/ompi_mpi_init.c > is called to late. > > I propose the following patch that solves the problem for me: > > diff --git a/ompi/runtime/ompi_mpi_init.c b/ompi/runtime/ompi_mpi_init.c > index 35509cf..c2370fc 100644 > --- a/ompi/runtime/ompi_mpi_init.c > +++ b/ompi/runtime/ompi_mpi_init.c > @@ -512,6 +512,13 @@ int ompi_mpi_init(int argc, char **argv, int requested, > int *provided) > } > #endif > > + /* If thread support was enabled, then setup OPAL to allow for > + them. */ > + if ((OPAL_ENABLE_PROGRESS_THREADS == 1) || > + (*provided != MPI_THREAD_SINGLE)) { > + opal_set_using_threads(true); > + } > + > /* initialize datatypes. This step should be done early as it will > * create the local convertor and local arch used in the proc > * init. > @@ -724,13 +731,6 @@ int ompi_mpi_init(int argc, char **argv, int requested, > int *provided) > goto error; > } > > - /* If thread support was enabled, then setup OPAL to allow for > - them. */ > - if ((OPAL_ENABLE_PROGRESS_THREADS == 1) || > - (*provided != MPI_THREAD_SINGLE)) { > - opal_set_using_threads(true); > - } > - > /* start PML/BTL's */ > ret = MCA_PML_CALL(enable(true)); > if( OMPI_SUCCESS != ret ) { > _______________________________________________ > devel mailing list > de...@open-mpi.org <mailto:de...@open-mpi.org> > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > <http://www.open-mpi.org/mailman/listinfo.cgi/devel> > Link to this post: > http://www.open-mpi.org/community/lists/devel/2014/12/16459.php > <http://www.open-mpi.org/community/lists/devel/2014/12/16459.php> > > _______________________________________________ > devel mailing list > de...@open-mpi.org <mailto:de...@open-mpi.org> > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > <http://www.open-mpi.org/mailman/listinfo.cgi/devel> > Link to this post: > http://www.open-mpi.org/community/lists/devel/2014/12/16462.php > <http://www.open-mpi.org/community/lists/devel/2014/12/16462.php>