-
Notifications
You must be signed in to change notification settings - Fork 1
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
Need to define a local variant of MPI_Session_finalize #23
Comments
I propose this would be named MPI_Session_free and have the same kind of meaning that MPI_COMM_FREE has for communicators (that is, it marks for deletion, deletion and message completion may be delayed to a later time). |
I recommend that all, who want to work on this issue, should be completely familiar with the progress rule of MPI, the special rule for MPI_Finalize and MPI_Session_finalize, and the relation to the possibilities to correctly implement an MPI library. |
Thanks for the comment. The main use case for the non-synchronizing session closing (lets call it SESSION_FREE) is when used in conjunction with MPI_COMM_DISCONNECT to guarantee that the channels are flushed independently of the SESSION_FREE call (and thus no progress required during the session_free call). In other cases (e.g. using MPI_COMM_FREE without care), calling SESSION_FREE would not progress to completion the required communication, as you highlighted. This is analogous to the MPI_COMM_FREE vs MPI_COMM_DISCONNECT/MPI_FINALIZE semantics difference. In any case this limitation should be well understood when discussing this procedure, and its potentially intricate usage pattern with COMM_FREE, COMM_DISCONNECT, WIN_FREE and friends. |
As pointed out during preparation of the MPI 4 standard, the way
MPI_Session_finalize
is defined as potentially synchronizing:revealed some less than desirable complexities for applications using sessions in non-trivial ways.
There was some agreement that the asymmetry between the local nature of
MPI_Session_init
and potentially non-local behavior ofMPI_Session_finalize
was part of the problem. For MPI-5 it would be good to have an alternative, local method forcleaning up
local MPI resources associated with a session.The text was updated successfully, but these errors were encountered: