<html><body>
<p><font size="2" face="sans-serif">Re: SHMEM ALLOC: I thought we were considering adding a "const char *key" param so that shared memory allocations better match OS (e.g. POSIX) shmem allocations and also to allow the call to be non-synchronizing.</font><br>
<br>
<font size="2" face="sans-serif">Re: HELPER THREADS:</font><br>
<br>
<font size="2" face="sans-serif">A) I don't see mention of the exception to MPI threading rules for the MPI_HELPER_* calls. Was that intentionally removed? Did I forget a discussion of that? I was thinking we need to state to implementers that MPI_HELPER_* must be thread safe (in all modes except MPI_THREAD_SINGLE) and to users that these calls may be used by any/all threads in any mode (except MPI_THREAD_SINGLE). Do we need to discuss this more?</font><br>
<br>
<font size="2" face="sans-serif">B) We did not finish discussion on whether all communications that are started after JOIN must be completed (MPI_WAIT et al.) before JOIN. I think this is important, if not for correctness then because it allows the implementation to be more optimal and so far I cannot think of a reason one would need to make communcations span the LEAVE.</font><br>
<br>
<font size="2" face="sans-serif">C) here is an example use:</font><br>
<font size="2" face="sans-serif">(if this is not an interesting enough example, let me know what you'd like to see)</font><br>
<br>
<font size="3" face="Liberation Serif"><b>Example 1: </b></font><font size="3" face="Liberation Serif">OpenMP program with distinct compute/communicate phases</font><br>
<br>
<font size="3" face="Liberation Serif">A simple example where one thread performs a blocking allreduce but the rest of the threads lend themselves as helpers. The omp barrier is to ensure that all endpoints are available when the allreduce begins.</font><br>
<br>
<font size="2" face="Liberation Mono">MPI_Init_thread(&argc, &argv, MPI_THREAD_FUNNELED, &threading);</font><br>
<font size="2" face="Liberation Mono">/* more program setup... */</font><br>
<font size="2" face="Liberation Mono">tid = gettid();</font><br>
<font size="2" face="Liberation Mono">#pragma omp parallel num_threads(N) {</font><br>
<br>
<font size="2" face="Liberation Mono">        tno = omp_get_thread_num();</font><br>
<font size="2" face="Liberation Mono">        MPI_Helper_team team;</font><br>
<font size="2" face="Liberation Mono">        MPI_Helper_team_create(tid, omp_get_num_threads(), &team);</font><br>
<br>
<font size="2" face="Liberation Mono">        /*</font><br>
<font size="2" face="Liberation Mono">         * some parallel computation may occur here...</font><br>
<font size="2" face="Liberation Mono">         */</font><br>
<br>
<font size="2" face="Liberation Mono">        /***** communications phase begins: *****/</font><br>
<font size="2" face="Liberation Mono">        MPI_Helper_join(team);</font><br>
<font size="2" face="Liberation Mono">        #pragma omp barrier</font><br>
<font size="2" face="Liberation Mono">        if (tno == 0) {</font><br>
<font size="2" face="Liberation Mono">                MPI_Allreduce(...);</font><br>
<font size="2" face="Liberation Mono">        }</font><br>
<font size="2" face="Liberation Mono">        MPI_Helper_leave(team);</font><br>
<font size="2" face="Liberation Mono">        /***** communications phase ends. *****/</font><br>
<br>
<font size="2" face="Liberation Mono">        /*</font><br>
<font size="2" face="Liberation Mono">         * more computation and/or communication phases</font><br>
<font size="2" face="Liberation Mono">         */</font><br>
<br>
<font size="2" face="Liberation Mono">        MPI_Helper_team_free(&team);</font><br>
<font size="2" face="Liberation Mono">}</font><br>
<br>
<br>
<br>
<font size="2" face="sans-serif">_______________________________________________<br>
Douglas Miller                  BlueGene Messaging Development<br>
IBM Corp., Rochester, MN USA                     Bldg 030-2 A410<br>
dougmill@us.ibm.com               Douglas Miller/Rochester/IBM</font><br>
<br>
<img width="16" height="16" src="cid:1__=09BBFD62DFCC05218f9e8a93df938@us.ibm.com" border="0" alt="Inactive hide details for Pavan Balaji ---12/05/2010 09:32:39 PM---Folks,"><font size="2" color="#424282" face="sans-serif">Pavan Balaji ---12/05/2010 09:32:39 PM---Folks,</font><br>
<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td style="background-image:url(cid:2__=09BBFD62DFCC05218f9e8a93df938@us.ibm.com); background-repeat: no-repeat; " width="40%">
<ul style="padding-left: 72pt"><font size="1" face="sans-serif"><b>Pavan Balaji <balaji@mcs.anl.gov></b></font><font size="1" face="sans-serif"> </font><br>
<font size="1" face="sans-serif">Sent by: mpi3-hybridpm-bounces@lists.mpi-forum.org</font>
<p><font size="1" face="sans-serif">12/05/2010 09:31 PM</font>
<table border="1">
<tr valign="top"><td width="168" bgcolor="#FFFFFF"><div align="center"><font size="1" face="sans-serif">Please respond to<br>
mpi3-hybridpm@lists.mpi-forum.org</font></div></td></tr>
</table>
</ul>
</td><td width="60%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:3__=09BBFD62DFCC05218f9e8a93df938@us.ibm.com" border="0" alt=""><br>
<div align="right"><font size="1" face="sans-serif">To</font></div></td><td width="100%"><img width="1" height="1" src="cid:3__=09BBFD62DFCC05218f9e8a93df938@us.ibm.com" border="0" alt=""><br>

<ul style="padding-left: 7pt"><font size="1" face="sans-serif">mpi3-hybridpm@lists.mpi-forum.org</font></ul>
</td></tr>

<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:3__=09BBFD62DFCC05218f9e8a93df938@us.ibm.com" border="0" alt=""><br>
<div align="right"><font size="1" face="sans-serif">cc</font></div></td><td width="100%"><img width="1" height="1" src="cid:3__=09BBFD62DFCC05218f9e8a93df938@us.ibm.com" border="0" alt=""><br>
</td></tr>

<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:3__=09BBFD62DFCC05218f9e8a93df938@us.ibm.com" border="0" alt=""><br>
<div align="right"><font size="1" face="sans-serif">Subject</font></div></td><td width="100%"><img width="1" height="1" src="cid:3__=09BBFD62DFCC05218f9e8a93df938@us.ibm.com" border="0" alt=""><br>

<ul style="padding-left: 7pt"><font size="1" face="sans-serif">[Mpi3-hybridpm] Hybrid WG meeting at the Forum</font></ul>
</td></tr>
</table>

<table border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="58"><img width="1" height="1" src="cid:3__=09BBFD62DFCC05218f9e8a93df938@us.ibm.com" border="0" alt=""></td><td width="336"><img width="1" height="1" src="cid:3__=09BBFD62DFCC05218f9e8a93df938@us.ibm.com" border="0" alt=""></td></tr>
</table>
</td></tr>
</table>
<br>
<tt><font size="2">Folks,<br>
<br>
I've uploaded a new draft of the EI chapter on the wiki. This is some <br>
edits based on the discussion during the previous call. Things left to <br>
be done:<br>
<br>
1. Examples<br>
<br>
2. Discussion of persistent threads vs. non-persistent threads (in the <br>
context of OpenMP).<br>
<br>
3. Additions from the endpoints proposal<br>
<br>
I'll be adding these this week. However, for the Forum, I think we can <br>
get started with presenting what we have.<br>
<br>
Unfortunately, I'll not be attending the Forum meeting this time. Is <br>
anyone from the working group going to be there? Will you be able to <br>
bring up the edited chapter and read out the changes to make sure there <br>
are no major complaints from the Forum?<br>
<br>
Thanks,<br>
<br>
  -- Pavan<br>
<br>
-- <br>
Pavan Balaji<br>
</font></tt><tt><font size="2"><a href="http://www.mcs.anl.gov/~balaji">http://www.mcs.anl.gov/~balaji</a></font></tt><tt><font size="2"><br>
_______________________________________________<br>
Mpi3-hybridpm mailing list<br>
Mpi3-hybridpm@lists.mpi-forum.org<br>
</font></tt><tt><font size="2"><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-hybridpm">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-hybridpm</a></font></tt><tt><font size="2"><br>
</font></tt><br>
</body></html>