Skip to content

What memory can be used for RMA targets?

William Gropp edited this page Sep 27, 2018 · 1 revision

Rolf sent email about the following text, suggesting an update to include ALLOCATE_SHARED memory. But others suggest that this text should be removed (or perhaps, given the MPI-2 restriction, updated to say that any memory can be used as a target).

Here's a recent email:

On Sep 25, 2018, at 9:38 PM, Jeff Hammond via mpiwg-rma [email protected] wrote:

Implementors may restrict the use of RMA communication that is synchronized by lock calls to windows in memory allocated by MPI_ALLOC_MEM (Section 8.2), MPI_WIN_ALLOCATE (Section 11.2.2), MPI_WIN_ALLOCATE_SHARED (Section 11.2.3), or attached with MPI_WIN_ATTACH (Section 11.2.4). Locks can be used portably only in such memory.

I am not certain that this change is consistent with the original intent, but we should just remove this text, because it does not make sense anymore. If MPI_Win_attach is sufficient to allow locks, then MPI_Win_create should be there, because one can implement MPI_Win_create in terms of MPI_Win_create_dynamic+MPI_Win_attach.

(from Pavan) +1 on removing that text. The intent was to allow Win_create too, which we somehow missed.

Next steps: If someone wants this to go forward, please create an RMA WG issue, following the Forum issue template.