Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] MPI_THREAD_FUNNELED and enable-mpi-thread-multiple
From: Ralph Castain (rhc_at_[hidden])
Date: 2013-06-14 19:37:00


On Feb 4, 2013, at 9:09 PM, Roland Schulz <roland_at_[hidden]> wrote:

>
>
>
> On Mon, Jan 28, 2013 at 9:20 PM, Brian Budge <brian.budge_at_[hidden]> wrote:
> I believe that yes, you have to compile enable-mpi-thread-multiple to
> get anything other than SINGLE.
>
> I just tested that compiling with enable-opal-multi-threads also makes MPI_Init_thread return MPI_THREAD_FUNNELED.

Yes, that is what it should do.

> Does enable-opal-multi-threads have any performance impact?

Sadly, it most certainly does.

> According to http://www.open-mpi.org/community/lists/users/2012/10/20587.php enable-mpi-thread-multiple has significant performance impact (at least for IB). But I couldn't find any description of whether this is also true for enable-opal-multi-threads.

Yes, it turns "on" all the thread locking code, so you will see a distinct drop-off in performance.

>
> Also why is enable-opal-multi-threads required for MPI_THREAD_FUNNELED? This was asked before (e.g. http://www.open-mpi.org/community/lists/devel/2010/05/7900.php) but I couldn't find any answer. What does the option change?

It turns on the thread locking code. Even though all the MPI is funneled, you are still accessing those calls from different threads - so thread locking at the interface level is required.

> The README states: "Enables thread lock support in the OPAL and ORTE layers.", but that is not very useful for a user. Also why is it not enabled by default?

Because those who don't want to use threads shouldn't suffer the performance penalty. I suppose it should be automatically turned on if you set enable-mpi-thread-multiple. It used to be that way, but probably bit-rotted at some time. We can take a look at that.

>
> Roland
>
>
> Brian
>
> On Tue, Jan 22, 2013 at 12:56 PM, Roland Schulz <roland_at_[hidden]> wrote:
> > Hi,
> >
> > compiling 1.6.1 or 1.6.2 without enable-mpi-thread-multiple returns from
> > MPI_Init_thread as provided level MPI_THREAD_SINGLE. Is
> > enable-mpi-thread-multiple required even for
> > MPI_THREAD_FUNNELED/MPI_THREAD_SERIALIZED?
> >
> > This question has been asked before:
> > http://www.open-mpi.org/community/lists/users/2011/05/16451.php but I
> > couldn't find an answer.
> >
> > Roland
> >
> > --
> > ORNL/UT Center for Molecular Biophysics cmb.ornl.gov
> > 865-241-1537, ORNL PO BOX 2008 MS6309
> >
> > _______________________________________________
> > users mailing list
> > users_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
>
>
>
>
>
> --
> ORNL/UT Center for Molecular Biophysics cmb.ornl.gov
> 865-241-1537, ORNL PO BOX 2008 MS6309
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users