-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Calling MPI_Request_free on RMA requests #29
Comments
Unlike Send, there's no way to know RMA completed otherwise. There's no valid use case for allowing it and plenty of harm. |
You know that the operation is complete once |
Fine but that's pointless. Don't use request based RMA if you're going to complete with flush. |
The use case for freeing RMA requests is incompatible with the use case for getting RMA requests in the first place. |
You might need to mark outstanding RMA request objects as completed during
the flush in order to support this. One design principle the Forum has
tried to be consistent about is that MPI should not require implementations
to internally track request objects that are returned to the user. But, we
would need to know that the communication was completed in order to make
these objects safe to free. As an alternative, you could track epoch ID on
the window and store the epoch ID in the request object to infer that its
epoch was already cleared by a flush. You would need to do this per
destination for MPI_Win_flush vs MPI_Win_flush_all, but it's probably
doable. If the epoch ID counter rolls over, you may need to fall back to a
flush in MPI_Request_free, which could be disallowed since this
operation is required to be local.
However, I do agree with Jeff's point that this doesn't feel like a
valid RMA use case and it will create additional overheads from bookkeeping
request status.
~Jim.
…On Mon, Sep 23, 2024 at 2:18 AM Jeff Hammond ***@***.***> wrote:
The use case for freeing RMA requests is incompatible with the use case
for getting RMA requests in the first place.
—
Reply to this email directly, view it on GitHub
<#29 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAZ5P4XYEEQTSBAGFDP6PATZX6XDBAVCNFSM6AAAAABOVCYNVSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNRXGMYTIMRRGI>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Does anyone remember why we explicitly disallow
MPI_Request_free
on RMA requests? If the window has been flushed we might as well release the requests viaMPI_Request_free
in addition to test & wait.We have an errata that roles back a change we made accidentally in 4.1 that allowed this behavior was contradicting language explicitly disallowing the use of
MPI_Request_free
: https://github.com/mpi-forum/mpi-standard/pull/904The language in question is here: https://github.com/mpi-forum/mpi-standard/blob/6d3fc03aac92c0ac62dcb7638bb0a8935aaa2081/chap-one-side/one-side-2.tex#L2024
The text was updated successfully, but these errors were encountered: