Once all communication calls for a given window are complete, processes should call MPI_Win_free to free up the window object. This operation requires that all RMA communications on that window have been completed, so a synchronization call must be made before this call may be made. We'll discuss this in a little more detail later, but it should make sense that a process must somehow ensure that all RMA operations are complete before freeing the RMA window. Therefore, the synchronization operation must be one that ensures that all processes using the window are done using it.

MPI_Win_free is a collective call that all processes in the group must call:

int MPI_Win_free(MPI_Win *win)

In between the window creation and freeing operations, we can use RMA communication calls. In the next section, we will describe the three types of calls provided by one-sided communication.

 
©  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Inclusivity Statement