The MPI_Session_finalize function is not correctly implemented in the proto-type. This function is suppose to have similar functionality to MPI_Finalize with respect to communication completion:
MPI_SESSION_FINALIZE is collective over all MPI processes that
are connected via MPI communicators, windows, or files that were created as part of the
session and still exist. If processes were spawned, accepted or connected
using MPI communicators created as part of this session, this operation is
collective over the union of all processes that have been and continue to be connected via those objects,
as explained in section on MPI_Comm_disconnect.
Right now, the implementation just decrements a ref counter and if its non-zero, doesn't do anything but set the supplied session handle to NULL.
Ironically this approach is now closer to where we will likely land with the behavior of MPI_Session_finalize in the MPI 4 standard. Closing this issue for now.
The
MPI_Session_finalize
function is not correctly implemented in the proto-type. This function is suppose to have similar functionality toMPI_Finalize
with respect to communication completion:Right now, the implementation just decrements a ref counter and if its non-zero, doesn't do anything but set the supplied session handle to NULL.