<div dir="ltr">I am curious if there is a good reason from the past as to why we only support caching on win, comm and datatype, and no other handles?<div><br></div><div>I have a good use case for request attributes and have found that the implementation overhead in MPICH appears to be zero. The implementation in MPICH requires adding a single pointer to an internal struct. This struct member will never be accessed except when the user needs it, and it can be placed at the end of the struct so that it doesn't even pollute the cache.</div><div><br></div><div>I wondered if callbacks were a hidden overhead, but they only called explicitly and synchronously, so they would not interfere with critical path uses of requests.</div><div><div class="gmail-page" title="Page 406"><div class="gmail-layoutArea"><div class="gmail-column">
</div>
</div>
</div></div><div><br></div><div><a href="https://github.com/mpi-forum/mpi-issues/issues/664">https://github.com/mpi-forum/mpi-issues/issues/664</a> has some details but since I do not understand how MPICH generates the MPI bindings, I only implemented the back-end MPIR code.</div><div><br></div><div>It would make MPI more consistent if all opaque handles supported attributes. In particular, I'd love to have a built-in MPI_Op attribute for the function pointer the user provided (which is similar to how one can query input args associated with MPI_Win) because that appears to be the only way I can implement certain corner cases of MPI F08.</div><div><br></div><div>Thanks,</div><div><br></div><div>Jeff<br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="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>