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