[Mpi3-rma] MPI-3 UNIFIED model clarification

Jim Dinan james.dinan at gmail.com
Thu Aug 1 10:19:26 CDT 2013

Here's a straw proposal on how we could fix this:

1. Leave the "eventually" visible semantic as-is.

2. Add (as an erratum) a new semantic that defines the order of operations
observed by load/store operations.  In this semantic, we would state that
operations targeting a process' window region are not guaranteed to be
observed by the target process in an ordering defined by the origin
process.  To ensure that remotely completed operations are observed, the
target process must call MPI_Win_sync().

I think this addresses many of our concerns (save "eventually," which is a
bigger change), and should still be SHMEM compatible.  It also plugs a hole
in the memory model for shared memory windows.


On Thu, Aug 1, 2013 at 10:33 AM, Jim Dinan <james.dinan at gmail.com> wrote:

> Let's make sure we are using the right language -- Unified does not
> guarantee that "public win == private win".  It guarantees that they are
> *eventually* the same, not immediately and always the same.  It is
> completely allowable for processes to have inconsistent views of the window
> (because there are cached copies of the data and buffered reads/writes).
>  The question we are debating is whether it is a reasonable semantic that
> those inconsistent views become eventually consistent without additional
> MPI calls by target processes.  And, if we choose to keep the "eventual"
> semantic that we currently have, whether any ordering imposed by other
> processes should be observed by the target process in load/store
> operations, provided that process performs no window synchronization calls.
>  ~Jim.
> On Wed, Jul 31, 2013 at 7:30 PM, Pavan Balaji <balaji at mcs.anl.gov> wrote:
>> On 07/31/2013 12:58 PM, Sur, Sayantan wrote:
>>> On 07/31/2013 12:00 PM, Jim Dinan wrote:
>>>>> I would bet that past Jim suggested striking the
>>>>> polling/eventually visibile clause and relying on window
>>>>> synchronization to see updates. :)
>>>> Yup, so did past, present, and future Pavan.  IMO, that's a useless
>>>> guarantee.
>>>>  The downside to this is that libraries like SHMEM that rely on
>>>>> passive progress and polling, would not be implementable on top
>>>>> of Unified.
>>>> It's pretty useless even for SHMEM, since the user doesn't know
>>>> when the data is valid.  You could poll on a byte for it to turn to
>>>> one, but at that point you only know about that one byte and
>>>> nothing else.
>>> Past Sayantan had missed this discussion, but present Sayantan does
>>> agree that "eventually" as defined is useless. But he is also
>>> confused by the guarantee given by MPI_Win_flush, that when the call
>>> returns, all previously issued RMA ops are complete locally and
>>> remotely + UNIFIED (public win == private win).
>> Unfortunately, that part slipped the checks of the folks who believed you
>> need a WIN_SYNC.  So the standard is inconsistent.  We have now made a full
>> circle and gotten back to where this email thread started :-).
>> --
>> Pavan Balaji
>> http://www.mcs.anl.gov/~balaji
>> ______________________________**_________________
>> mpi3-rma mailing list
>> mpi3-rma at lists.mpi-forum.org
>> http://lists.mpi-forum.org/**mailman/listinfo.cgi/mpi3-rma<http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-rma>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-rma/attachments/20130801/e34d26d8/attachment-0001.html>

More information about the mpiwg-rma mailing list