Re: [Mpi3-rma] RMA chapter for quick review
On 03/11/2011 02:21 PM, Barrett, Brian W wrote:
On 3/11/11 12:10 PM, "Torsten Hoefler" <[email protected]> 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: unified 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. ~Jim.
participants (1)
-
James Dinan