All three of the RMA communication operations are non-blocking, which means that the call initiates the transfer, but the transfer may begin or continue after the call returns. A synchronization call is required to ensure that the transfer has been completed.

Before we can begin using one-sided communication calls, we first need to know how to synchronize the MPI processes that are communicating. For a given window, two synchronization calls are generally necessary: one to begin a communication epoch and a second one to resolve all the communications that were initiated after the first call, ending the epoch. In the next three pages, we will cover the three different methods provided by MPI for RMA synchronization.

Notice that epochs are defined per window. This means that any individual process may participate in several access epochs simultaneously, provided that each epoch is associated with a different window.

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