<div dir="ltr">It's more than function call overhead.  Fence usually includes a barrier, so this is one barrier versus several.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 11, 2014 at 10:09 AM, Jeff Hammond <span dir="ltr"><<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If function call overhead matters, MPI is probably the wrong model.<br>
<br>
You'll have to prove to me that this (function call overhead) is significant compared to the cost of synchronization using empirical data on some system.<br>
<br>
Jeff<br>
<br>
Sent from my iPhone<br>
<div class="HOEnZb"><div class="h5"><br>
> On Aug 11, 2014, at 1:49 AM, Rolf Rabenseifner <<a href="mailto:rabenseifner@hlrs.de">rabenseifner@hlrs.de</a>> wrote:<br>
><br>
> Jim and all,<br>
><br>
> It is not syntactic sugar.<br>
> It is a latency optimizing enhancement:<br>
><br>
> If you are doing neighbor communication with 1-sided<br>
> communication to 6 neighbors - based on 6 windows that<br>
> are all defined in MPI_COMM_WORLD, then currently<br>
> you need to call 6 times the synchronization calls<br>
> which implies at maximum a 6 times larger latency,<br>
> e.g., 6 times MPI_Win_fence instead of one call.<br>
><br>
> If you are using MPI on shared memory windows,<br>
> then the same latency problem exists, but here,<br>
> the trick with dynamic windows is impossible<br>
> because shared memory windows must be allocated<br>
> with MPI_Win_allocate_shared.<br>
><br>
> Of course, it is more complicated to define<br>
> MPI_Win_combine on a superset of communicators used<br>
> for all the combined windows.<br>
><br>
> As a first effort,  it would be already helpful<br>
> to define it for the same communicator.<br>
> To allow enhancements in a future MPI version,<br>
> I still would recommend to have the comm argument<br>
> as part of the argument list.<br>
><br>
> Rolf<br>
><br>
> ----- Original Message -----<br>
>> From: "Jim Dinan" <<a href="mailto:james.dinan@gmail.com">james.dinan@gmail.com</a>><br>
>> To: "MPI WG Remote Memory Access working group" <<a href="mailto:mpiwg-rma@lists.mpi-forum.org">mpiwg-rma@lists.mpi-forum.org</a>><br>
>> Sent: Sunday, August 10, 2014 5:48:02 PM<br>
>> Subject: Re: [mpiwg-rma] Single RMA synchronization for several window        handles<br>
>><br>
>><br>
>><br>
>> Hi Rolf,<br>
>><br>
>><br>
>> I had initially proposed this in the context of passive target RMA.<br>
>> Active target RMA already notifies the receiver when data has<br>
>> arrived, but there is no efficient way to get such a notification in<br>
>> passive target RMA.  I think what you are proposing here would be<br>
>> syntactic sugar on top of the existing interface --- could I<br>
>> implement this by fencing every window to determine that all<br>
>> transfers are completed?<br>
>><br>
>><br>
>> I agree with the comments regarding dynamic windows.  The merged<br>
>> window would contain discontiguous buffers; thus, it would lose the<br>
>> ability to do offset-based addressing and would need to use absolute<br>
>> (BOTTOM-based) addressing.<br>
>><br>
>><br>
>> ~Jim.<br>
>><br>
>><br>
>><br>
>> On Fri, Aug 8, 2014 at 10:18 AM, Rolf Rabenseifner <<br>
>> <a href="mailto:rabenseifner@hlrs.de">rabenseifner@hlrs.de</a> > wrote:<br>
>><br>
>><br>
>> Jim,<br>
>><br>
>> your topic "Reducing Synchronization Overhead Through Bundled<br>
>> Communication" may get also help if we would be able to<br>
>> combine several window handles to one superset window handle.<br>
>><br>
>> If you have several windows for different buffers, but<br>
>> only one synchronization pattern, e.g. MPI_Win_fince<br>
>> then currently you must call MPI_Win_fence seperately<br>
>> for each window handle.<br>
>><br>
>> I would propose:<br>
>><br>
>> MPI_Win_combine (/*IN*/  int count,<br>
>>                 /*IN*/  MPI_Win *win,<br>
>>                 /*IN*/  MPI_Comm comm,<br>
>>                 /*OUT*/ MPI_Win *win_combined)<br>
>><br>
>> The process group of comm must contain the process groups of all win.<br>
>> The resulting window handle win_combined can be used only<br>
>> in RMA synchronization calls and other helper routines,<br>
>> but not for dynamic window allocation nor for any<br>
>> RMA communication routine.<br>
>> Collective synchronization routines must be called by all processes<br>
>> of comm.<br>
>> The semantics of an RMA synchronization call using win_combined<br>
>> is defined as if the calls were seperately issued for<br>
>> each window handle of the array win. If group handles<br>
>> are part of the argument list of the synchronization call<br>
>> then the appropriate subset is used for each window handle in win.<br>
>><br>
>> What do you think about this idea for MPI-4.0?<br>
>><br>
>> Best regards<br>
>> Rolf<br>
>><br>
>> ----- Original Message -----<br>
>>> From: "Jim Dinan" < <a href="mailto:james.dinan@gmail.com">james.dinan@gmail.com</a> ><br>
>>> To: "MPI WG Remote Memory Access working group" <<br>
>>> <a href="mailto:mpiwg-rma@lists.mpi-forum.org">mpiwg-rma@lists.mpi-forum.org</a> ><br>
>>> Sent: Thursday, August 7, 2014 4:08:32 PM<br>
>>> Subject: [mpiwg-rma] RMA Notification<br>
>>><br>
>>><br>
>>><br>
>>> Hi All,<br>
>>><br>
>>><br>
>>> I have added a new proposal for an RMA notification extension:<br>
>>> <a href="https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/439" target="_blank">https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/439</a><br>
>>><br>
>>><br>
>>> I would like to bring this forward for the RMA WG to consider as an<br>
>>> MPI-4 extension.<br>
>>><br>
>>><br>
>>> Cheers,<br>
>>> ~Jim.<br>
>>> _______________________________________________<br>
>>> mpiwg-rma mailing list<br>
>>> <a href="mailto:mpiwg-rma@lists.mpi-forum.org">mpiwg-rma@lists.mpi-forum.org</a><br>
>>> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma</a><br>
>><br>
>> --<br>
>> Dr. Rolf Rabenseifner . . . . . . . . . .. email <a href="mailto:rabenseifner@hlrs.de">rabenseifner@hlrs.de</a><br>
>> High Performance Computing Center (HLRS) . phone <a href="tel:%2B%2B49%280%29711%2F685-65530" value="+4971168565530">++49(0)711/685-65530</a><br>
>> University of Stuttgart . . . . . . . . .. fax <a href="tel:%2B%2B49%280%29711%20%2F%20685-65832" value="+4971168565832">++49(0)711 / 685-65832</a><br>
>> Head of Dpmt Parallel Computing . . . <a href="http://www.hlrs.de/people/rabenseifner" target="_blank">www.hlrs.de/people/rabenseifner</a><br>
>> Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307)<br>
>> _______________________________________________<br>
>> mpiwg-rma mailing list<br>
>> <a href="mailto:mpiwg-rma@lists.mpi-forum.org">mpiwg-rma@lists.mpi-forum.org</a><br>
>> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma</a><br>
>><br>
>> _______________________________________________<br>
>> mpiwg-rma mailing list<br>
>> <a href="mailto:mpiwg-rma@lists.mpi-forum.org">mpiwg-rma@lists.mpi-forum.org</a><br>
>> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma</a><br>
><br>
> --<br>
> Dr. Rolf Rabenseifner . . . . . . . . . .. email <a href="mailto:rabenseifner@hlrs.de">rabenseifner@hlrs.de</a><br>
> High Performance Computing Center (HLRS) . phone <a href="tel:%2B%2B49%280%29711%2F685-65530" value="+4971168565530">++49(0)711/685-65530</a><br>
> University of Stuttgart . . . . . . . . .. fax <a href="tel:%2B%2B49%280%29711%20%2F%20685-65832" value="+4971168565832">++49(0)711 / 685-65832</a><br>
> Head of Dpmt Parallel Computing . . . <a href="http://www.hlrs.de/people/rabenseifner" target="_blank">www.hlrs.de/people/rabenseifner</a><br>
> Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307)<br>
> _______________________________________________<br>
> mpiwg-rma mailing list<br>
> <a href="mailto:mpiwg-rma@lists.mpi-forum.org">mpiwg-rma@lists.mpi-forum.org</a><br>
> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma</a><br>
_______________________________________________<br>
mpiwg-rma mailing list<br>
<a href="mailto:mpiwg-rma@lists.mpi-forum.org">mpiwg-rma@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma</a><br>
</div></div></blockquote></div><br></div>