Based on my high-level understanding of the code path and according to the
UCX implementation of the flush, the required level of completion is local.

  George.


On Tue, Sep 28, 2021 at 19:26 Zhang, Wei via devel <devel@lists.open-mpi.org>
wrote:

> Dear All,
>
>
>
> I have a question regarding the completion semantics of btl_flush,
>
>
>
> In opal/mca/btl/btl.h,
>
>
>
>
> https://github.com/open-mpi/ompi/blob/4828663537e952e3d7cbf8fbf5359f16fdcaaade/opal/mca/btl/btl.h#L1146
>
>
>
> the comment about btl_flush says:
>
>
>
> * This function returns when all outstanding RDMA (put, get, atomic)
> operations
>
> * that were started prior to the flush call have completed.
>
>
>
> However, it is not clear to me what “complete” actually means? E.g. does
> it mean local completion (the action on RDMA initiator side has completed),
> or does it mean “remote completion”, (the action of RDMA remote side has
> completed). We are interested in this  because for many RDMA btls, “local
> completion” does not equal to “remote completion”.
>
>
>
> From the way btl_flush is used in osc/rdma’s fence operation (which is a
> call to flush followed by a MPI_Barrier), we think that btl_flush should
> mean remote completion, but want to get the clarification from the
> community.
>
>
>
> Sincerely,
>
>
>
> Wei Zhang
>
>
>

Reply via email to