<div dir="ltr"><div dir="ltr"><div dir="ltr">On the topic of accumulate info keys, <a href="https://github.com/mpi-forum/mpi-issues/issues/36">https://github.com/mpi-forum/mpi-issues/issues/36</a> is the necessary first step to make the default sufficiently general for RMA to support all usage models.</div><div dir="ltr"><br></div><div dir="ltr"><a href="https://github.com/mpi-forum/mpi-issues/issues/46">https://github.com/mpi-forum/mpi-issues/issues/46</a> was my idea for the next step.  It is not very specific, but the intent was to allow the user to describe their use of RMA in detail.  This could go all the way to a database of (op,basic_datatype,complete_datatype,max_count).</div><div dir="ltr"><br></div><div>I suspect a more pragmatic approach is to define additional keys we think implementations will actually use, such as:</div><div>* no_noncontiguous_datatypes - exclude e.g. MPI_Type_vector with stride!=1 and anything else that might lead to pack/unpack.</div><div>* max_count (or should it be max_target_count) - specify upper bound on message size.</div><div dir="ltr"><br></div><div dir="ltr">Jeff<br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 12, 2018 at 1:26 AM, Joseph Schuchart via mpiwg-rma <span dir="ltr"><<a href="mailto:mpiwg-rma@lists.mpi-forum.org" target="_blank">mpiwg-rma@lists.mpi-forum.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Pavan,<br>
<br>
I listened in for the MPI-RMA WG telco yesterday and found some interesting points in it. In particular, I am interested in the discussion on atomics and same_op. I support the notion that MPI should choose a conservative default to make sure users do not run into surprising UB because the implementation expects or supports only same_op, which the user may not be aware of.<br>
<br>
As a developer of a framework built on top of MPI RMA I would also be interested in getting information from the MPI implementation on which atomic operations are actually supported in hardware on the current system, which would allow me to pick different implementations of a specific feature to fully exploit the available hardware capabilities (similar to C++ `std::atomic_is_lock_free`). Are there any plans to provide such an interface? This could be used in combination with an info key (say `native_op`) that promises that the user will only use a mix of operations that are supported in hardware, which would then avoid the required fall-back to active messages discussed yesterday.<br>
<br>
Last but not least, I am also interested in the shared memory optimization for collectives (iirc, MPI_DISCARD?). I couldn't find an issue on Github on this. Is there any publicly available information you can share?<br>
<br>
Any input would be much appreciated.<br>
<br>
Many thanks in advance,<br>
Joseph<div class="gmail-HOEnZb"><div class="gmail-h5"><br>
<br>
On 09/10/2018 09:21 PM, Balaji, Pavan via mpiwg-rma wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
______________________________<wbr>_________________<br>
mpiwg-rma mailing list<br>
<a href="mailto:mpiwg-rma@lists.mpi-forum.org" target="_blank">mpiwg-rma@lists.mpi-forum.org</a><br>
<a href="https://lists.mpi-forum.org/mailman/listinfo/mpiwg-rma" rel="noreferrer" target="_blank">https://lists.mpi-forum.org/ma<wbr>ilman/listinfo/mpiwg-rma</a><br>
<br>
</blockquote>
______________________________<wbr>_________________<br>
mpiwg-rma mailing list<br>
<a href="mailto:mpiwg-rma@lists.mpi-forum.org" target="_blank">mpiwg-rma@lists.mpi-forum.org</a><br>
<a href="https://lists.mpi-forum.org/mailman/listinfo/mpiwg-rma" rel="noreferrer" target="_blank">https://lists.mpi-forum.org/ma<wbr>ilman/listinfo/mpiwg-rma</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>
</div></div></div></div>