<html><body>
<p>See MPI_IS_THREAD_MAIN on page 198.  The definition of "main thread" is there.  Maybepage 198 is not the best place for a definition of a term that is used on page 196 but the standard does provide one.<br>
<br>
I am reluctant to mention OpenMP in the context of defining MPI_THREAD_FUNNELED because then we would need to discuss other ways an application could become multi threaded too.<br>
<br>
Dick Treumann  -  MPI Team/TCEM            <br>
IBM Systems & Technology Group<br>
Dept 0lva / MS P963 -- 2455 South Road -- Poughkeepsie, NY 12601<br>
Tele (845) 433-7846         Fax (845) 433-8363<br>
<br>
<br>
<tt>mpi-21-bounces@cs.uiuc.edu wrote on 01/31/2008 12:58:59 PM:<br>
<br>
> What is the definition of a "main thread" ? The OpenMP example is  <br>
> still vague.<br>
> <br>
> I think we should clarify what we expect the "main thread" to be. From  <br>
> my perspective, this "main thread" is the one that called the  <br>
> MPI_Init_thread function, as the MPI library is then allowed to attach  <br>
> some kind of private key(s) to it (pthread_key_create).<br>
> <br>
>    Thanks,<br>
>      george.<br>
> <br>
> On Jan 31, 2008, at 11:09 AM, Rolf Rabenseifner wrote:<br>
> <br>
> > Sorry Rich,<br>
> ><br>
> > but MPI 2.0 has defined "main thread", and not less!<br>
> ><br>
> > The open question was only, who is responsible for guaranteing this.<br>
> ><br>
> > Dicks text is fine:<br>
> >>> MPI_THREAD_FUNNELED The process may be multi-threaded, but the  <br>
> >>> application<br>
> >>> must insure that only the main thread makes MPI calls.<br>
> ><br>
> > My first proposal<br>
> >>>>>>>  MPI_THREAD_FUNNELED The process may be multi-threaded, but only<br>
> >>>>>>>  the main thread will make MPI calls (all MPI calls are  <br>
> >>>>>>> "funneled"<br>
> >>>>>>>  to the main thread, e.g., by using the OpenMP directive  <br>
> >>>>>>> "master"<br>
> >>>>>>>  in the application program).<br>
> > has the advantage, that "main thread" is defined by refering to<br>
> > the OpenMP-Standard where "OpenMP master thread" is defined (and not  <br>
> > "main").<br>
> ><br>
> > We can combine this to:<br>
> >  MPI_THREAD_FUNNELED The process may be multi-threaded, but the  <br>
> > application<br>
> >  must insure that only the main thread makes MPI calls, e.g., by  <br>
> > using the<br>
> >  OpenMP directive "master".<br>
> ><br>
> > (This clearly tells that OpenMP single directive is not enough.)<br>
> ><br>
> > Best regards<br>
> > Rolf<br>
> ><br>
> ><br>
> > On Thu, 31 Jan 2008 10:50:35 -0500<br>
> > Richard Graham <rlgraham@ornl.gov> wrote:<br>
> >> Why restrict this to a standard specified thread (main thread), why  <br>
> >> not word<br>
> >> it<br>
> >> as a singe thread, and let the app decide what thread this is,  <br>
> >> based on<br>
> >> what<br>
> >> ever criteria it wants to use to select this thread ?<br>
> >><br>
> >> Rich<br>
> >><br>
> >><br>
> >> On 1/31/08 10:27 AM, "Richard Treumann" <treumann@us.ibm.com> wrote:<br>
> >><br>
> >>> How about::<br>
> >>> MPI_THREAD_FUNNELED The process may be multi-threaded, but the  <br>
> >>> application<br>
> >>> must insure that only the main thread makes MPI calls.<br>
> >>><br>
> >>><br>
> >>> Dick Treumann  -  MPI Team/TCEM<br>
> >>> IBM Systems & Technology Group<br>
> >>> Dept 0lva / MS P963 -- 2455 South Road -- Poughkeepsie, NY 12601<br>
> >>> Tele (845) 433-7846         Fax (845) 433-8363<br>
> >>><br>
> >>><br>
> >>> mpi-21-bounces@cs.uiuc.edu wrote on 01/31/2008 09:44:08 AM:<br>
> >>><br>
> >>>>> A simpler change which would seem to achieve the desired  <br>
> >>>>> clarification<br>
> >>>>> would be :-<br>
> >>>>><br>
> >>>>>   MPI_THREAD_FUNNELED The process may be multi-threaded, but  <br>
> >>>>> only the<br>
> >>>>> main<br>
> >>>>>   thread is allowed to make MPI calls.<br>
> >>>>><br>
> >>>>> (and you could add<br>
> >>>>>   If other threads make MPI calls the behavior is undefined.<br>
> >>>>> if you want to be verbose about it).<br>
> >>>>><br>
> >>>>> -- Jim<br>
> >>>>><br>
> >>>>> James Cownie <james.h.cownie@intel.com><br>
> >>>>> SSG/DPD/PAT<br>
> >>>>> Tel: +44 117 9071438<br>
> >>>>><br>
> >>>>><br>
> >>>>><br>
> >>>>><br>
> >>>>>>> -----Original Message-----<br>
> >>>>>>> From: mpi-21-bounces@cs.uiuc.edu [<a href="mailto:mpi-21-bounces@cs.uiuc.edu">mailto:mpi-21-bounces@cs.uiuc.edu</a> <br>
> >>>>>>> ]<br>
> >>>>> On<br>
> >>>>>>> Behalf Of Rolf Rabenseifner<br>
> >>>>>>> Sent: 31 January 2008 14:31<br>
> >>>>>>> To: mpi-21@cs.uiuc.edu<br>
> >>>>>>> Subject: [mpi-21] Ballot 4 - MPI_THREAD_FUNNELED - was Re:  <br>
> >>>>>>> Attending,<br>
> >>>>>>> topics, etc<br>
> >>>>>>><br>
> >>>>>>> This is a proposal for MPI 2.1, Ballot 4.<br>
> >>>>>>><br>
> >>>>>>> I'm asking especially<br>
> >>>>>>>  Greg Lindahl,<br>
> >>>>>>> the participants of the email-discussion in 2007, to review this<br>
> >>>>> proposal.<br>
> >>>>>>><br>
> >>>>>>> This is a follow up to:<br>
> >>>>>>>  Which thread is the funneled thread?<br>
> >>>>>>>  in <a href="http://www.cs.uiuc.edu/homes/wgropp/projects/parallel/MPI/mpi-">http://www.cs.uiuc.edu/homes/wgropp/projects/parallel/MPI/mpi-</a><br>
> >>>>>>> errata/index.html<br>
> >>>>>>> with mail discussion in<br>
> >>>>>>>  <a href="http://www.cs.uiuc.edu/homes/wgropp/projects/parallel/MPI/mpi-">http://www.cs.uiuc.edu/homes/wgropp/projects/parallel/MPI/mpi-</a><br>
> >>>>>>> errata/discuss/funneled/<br>
> >>>>>>> ___________________________________<br>
> >>>>>>><br>
> >>>>>>> Proposal:<br>
> >>>>>>> MPI-2.0 Sect. 8.7.3, MPI_Init_thread, page 196, lines 25-26  <br>
> >>>>>>> read:<br>
> >>>>>>><br>
> >>>>>>>  MPI_THREAD_FUNNELED The process may be multi-threaded, but only<br>
> >>>>>>>  the main thread will make MPI calls (all MPI calls are  <br>
> >>>>>>> "funneled"<br>
> >>>>>>>  to the main thread).<br>
> >>>>>>><br>
> >>>>>>> but should read:<br>
> >>>>>>><br>
> >>>>>>>  MPI_THREAD_FUNNELED The process may be multi-threaded, but only<br>
> >>>>>>>  the main thread will make MPI calls (all MPI calls are  <br>
> >>>>>>> "funneled"<br>
> >>>>>>>  to the main thread, e.g., by using the OpenMP directive  <br>
> >>>>>>> "master"<br>
> >>>>>>>  in the application program).<br>
> >>>>>>> ___________________________________<br>
> >>>>>>> Rationale for this clarification from the email from Greg  <br>
> >>>>>>> Lindahl:<br>
> >>>>>>>  The existing document doesn't make it clear that<br>
> >>>>>>>  the MPI user has to funnel the calls to the main thread;<br>
> >>>>>>>  it's not the job of the MPI library. I have seen multiple<br>
> >>>>>>>  MPI users confused by this issue, and when I first read<br>
> >>>>>>>  this section, I was confused by it, too.<br>
> >>>>>>> ___________________________________<br>
> >>>>>>><br>
> >>>>>>><br>
> >>>>>>> Best regards<br>
> >>>>>>> Rolf<br>
> >>>>>>><br>
> >>>>>>><br>
> >>>>>>><br>
> >>>>>>><br>
> >>>>>>> Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner@hlrs.de<br>
> >>>>>>> High Performance Computing Center (HLRS) . phone + <br>
> >>>>>>> +49(0)711/685-65530<br>
> >>>>>>> University of Stuttgart . . . . . . . . .. fax ++49(0)711 /  <br>
> >>>>>>> 685-65832<br>
> >>>>>>> Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner<br>
> >>>>>>> Nobelstr. 19, D-70550 Stuttgart, Germany . (Office:  <br>
> >>>>>>> Allmandring 30)<br>
> >>>>>>> _______________________________________________<br>
> >>>>>>> mpi-21 mailing list<br>
> >>>>>>> mpi-21@cs.uiuc.edu<br>
> >>>>>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21">http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21</a><br>
> >>>>> ---------------------------------------------------------------------<br>
> >>>>> Intel Corporation (UK) Limited<br>
> >>>>> Registered No. 1134945 (England)<br>
> >>>>> Registered Office: Pipers Way, Swindon SN3 1RJ<br>
> >>>>> VAT No: 860 2173 47<br>
> >>>>><br>
> >>>>> This e-mail and any attachments may contain confidential  <br>
> >>>>> material for<br>
> >>>>> the sole use of the intended recipient(s). Any review or  <br>
> >>>>> distribution<br>
> >>>>> by others is strictly prohibited. If you are not the intended<br>
> >>>>> recipient, please contact the sender and delete all copies.<br>
> >>>>><br>
> >>>>><br>
> >>>>> _______________________________________________<br>
> >>>>> mpi-21 mailing list<br>
> >>>>> mpi-21@cs.uiuc.edu<br>
> >>>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21">http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21</a><br>
> >>><br>
> >>><br>
> >>> _______________________________________________<br>
> >>> mpi-21 mailing list<br>
> >>> mpi-21@cs.uiuc.edu<br>
> >>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21">http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21</a><br>
> >><br>
> >><br>
> ><br>
> ><br>
> ><br>
> > Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner@hlrs.de<br>
> > High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530<br>
> > University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832<br>
> > Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner<br>
> > Nobelstr. 19, D-70550 Stuttgart, Germany . (Office: Allmandring 30)<br>
> > _______________________________________________<br>
> > mpi-21 mailing list<br>
> > mpi-21@cs.uiuc.edu<br>
> > <a href="http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21">http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21</a><br>
> <br>
> [attachment "smime.p7s" deleted by Richard <br>
> Treumann/Poughkeepsie/IBM] _______________________________________________<br>
> mpi-21 mailing list<br>
> mpi-21@cs.uiuc.edu<br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21">http://lists.cs.uiuc.edu/mailman/listinfo/mpi-21</a><br>
</tt></body></html>