[Mpi3-rma] RMA chapter for quick review

James Dinan dinan at mcs.anl.gov
Fri Mar 11 14:41:46 CST 2011

On 03/11/2011 02:21 PM, Barrett, Brian W wrote:
> On 3/11/11 12:10 PM, "Torsten Hoefler" <htor at illinois.edu> wrote:
>>> Page and line numbers are from the marked-up copy, not the clean copy.
>>> Pg 1, ln 45/46 & pg 2, ln 1&2: The discussion of communication
>>> operations
>>> being delayed for the separate model and immediate for the unified model
>>> is a bit confusing.  When the implementation *starts* the communication
>>> is
>>> the same for both models, depending on the synchronization calls.  The
>>> only difference between the two models is when the private and public
>>> copies on the target must be synchronized.  As I read the standard, an
>>> implantation is free to start a put immediately upon calling MPI_PUT in
>>> the separate model and also free to start a put during MPI_UNLOCK in the
>>> unified model.
>> It's a very high-level view - we don't separate between completion and
>> start at this point (in the intro). Both statements are "can" statements
>> and not wrong. Do you have a concrete wording proposal that makes it
>> less confusing?
> No, I wasn't suggesting that we do.  My main concern was that we were
> introducing the potential for someone to read a requirement where none
> existed.    To be honest, I think the best route is to remove the two
> clauses:
>   "; for efficiency, the implementation can delay communication operations
> until the synchronization calls occur" and
>   "In this model, communication can be independent of synchronization
> calls."
> Neither are strictly necessary for the point being made, and there's no
> great way to describe the concept without more detail than makes sense for
> an introduction.
> Thoughts from others?

I don't know if this was already pointed out, but I think in that text
on page 1 "first model" (unified) and "second model" (separate) are
referring to the wrong things:

"MPI supports two fundamentally dierent memory models: unified and
separate. The *first model* makes no assumption about memory
consistency and is highly portable. This model is similar to that of
weakly coherent memory systems: correct ordering of memory accesses has
to be imposed by the user, using synchronization calls; /for efficiency,
the implementation can delay communication operations until the
synchronization calls occur/. The *second model* can exploit cache
coherent hardware and hardware-accelerated one-sided operations that are
commonly available in high-performance systems. /In this model,
communication can be independent of synchronization calls./ The two
different models are discussed in detail in Section 11.4. A large number
of synchronization calls are provided for both models to support
dierent synchronization styles."

We should be saying "the unified model" and "the separate model" to be
certain we're referring to the correct model.

I agree with Brian, the above statements seem out of place in the
introduction.  They seems more like an advice comment, should we decide
we want to keep them.

Also, do we want to say cache coherent in this paragraph?  I thought we
were trying to avoid that.


More information about the mpiwg-rma mailing list