[Mpi3-rma] RMA op compatibility matrix
James Dinan
dinan at mcs.anl.gov
Fri Oct 14 17:21:29 CDT 2011
I am pretty sure that this rule is meant to apply to both the one-window
and multiple-windows cases. The rationale that follows seems to confirm
this:
--snip--
Rationale. The last constraint on correct RMA accesses may seem unduly
restrictive, as it forbids concurrent accesses to nonoverlapping
locations in a window. The reason for this constraint is that, on some
architectures, explicit coherence restoring operations may be needed at
synchronization points. A different operation may be needed for
locations that were locally updated by stores and for locations that
were remotely updated by put or accumulate operations. Without this
constraint, the MPI library will have to track precisely which locations
in a window were updated by a put or accumulate call. The additional
overhead of maintaining such information is considered prohibitive. (End
of rationale.)
--snip--
Sorry, I didn't think hard enough initially about the specific cases you
mentioned and just applied my simplified rule of thumb that load/store
conflicts with everything.
I agree that load + Put/Acc and store + Get appear to be non-erroneous
when the accesses are non-overlapping.
Updated table is attached. Does this look correct now for MPI-2 and MPI-3?
~Jim.
On 10/14/11 4:58 PM, Pavan Balaji wrote:
>
> I don't think believe that's correct. Both the "local update" and the
> "put or accumulate" parts apply to the overlapping window.
>
> Here's the rule (which can be broken up into two rules):
>
> * A put or accumulate must not access a target window once a local
> update or a put or accumulate update to another (overlapping) target
> window have started on a location in the target window, until the update
> becomes visible in the public copy of the window.
>
> * Conversely, a local update in process memory to a location in a window
> must not start once a put or accumulate update to that target window has
> started, until the put or accumulate update becomes visible in process
> memory. In both cases, the restriction applies to operations even if
> they access disjoint locations in the window.
>
> The second half is not relevant here because it's talking about the same
> location, not the same window.
>
> The first half is not relevant here because it's talking about
> overlapping windows.
>
> Even logically, the first rule only makes sense for overlapping windows.
> It doesn't make sense for non-overlapping windows. Why would load +
> Put/Acc be a problem?
>
> -- Pavan
>
> On 10/14/2011 04:48 PM, James Dinan wrote:
>> I think this rule is overloaded to define semantics for both load/store
>> and multiple windows. I believe that the parsing below with bracketed
>> text removed is the correct interpretation for this case:
>>
>> A put or accumulate must not access a target window once a local update
>> [or a put or accumulate update to another (overlapping) target window]
>> have started on a location in the target window, until the update
>> becomes visible in the public copy of the window. Conversely, a local
>> update in process memory to a location in a window must not start once a
>> put or accumulate update to that target window has started, until the
>> put or accumulate update becomes visible in process memory. In both
>> cases, the restriction applies to operations even if they access
>> disjoint locations in the window.
>>
>> ~Jim.
>>
>> On 10/14/11 4:36 PM, Pavan Balaji wrote:
>>>
>>> That rule is for overlapping windows.
>>>
>>> Pavan Balaji @ iPhone
>>> (Big fingers. Small email.)
>>>
>>> On Oct 14, 2011, at 4:33 PM, James Dinan<dinan at mcs.anl.gov> wrote:
>>>
>>>> Rule #3 on page 365 of semantics and correctness:
>>>>
>>>> --snip--
>>>>
>>>> 3. A put or accumulate must not access a target window once a local
>>>> update or a put or accumulate update to another (overlapping) target
>>>> window have started on a location in the target window, until the
>>>> update becomes visible in the public copy of the window. Conversely,
>>>> a local update in process memory to a location in a window must not
>>>> start once a put or accumulate update to that target window has
>>>> started, until the put or accumulate update becomes visible in
>>>> process memory. In both cases, the restriction applies to operations
>>>> even if they access disjoint locations in the window.
>>>>
>>>> A program is erroneous if it violates these rules.
>>>>
>>>> --snip--
>>>>
>>>> ~Jim.
>>>>
>>>> PS- This rule is like five rules. We really should regroup once the
>>>> ticket is accepted and see if it can be split into a few smaller,
>>>> easier to digest rules.
>>>>
>>>> On 10/14/11 3:18 PM, Pavan Balaji wrote:
>>>>>
>>>>> Why are they incompatible in MPI-2?
>>>>>
>>>>> Pavan Balaji @ iPhone
>>>>> (Big fingers. Small email.)
>>>>>
>>>>> On Oct 14, 2011, at 11:18 AM, James Dinan<dinan at mcs.anl.gov> wrote:
>>>>>
>>>>>> In MPI-2, the are not compatible, but in MPI-3, it's ok as long as
>>>>>> there is no overlap. I've attached an updated PDF with both MPI-2
>>>>>> and MPI-3 tables.
>>>>>>
>>>>>> ~Jim.
>>>>>>
>>>>>> On 10/14/11 2:02 AM, Pavan Balaji wrote:
>>>>>>>
>>>>>>> There seem to be a few errors here: load + Put/Acc and store + Get
>>>>>>> should be NOVL.
>>>>>>>
>>>>>>> -- Pavan
>>>>>>>
>>>>>>> On 10/10/2011 02:35 PM, James Dinan wrote:
>>>>>>>> Hi All,
>>>>>>>>
>>>>>>>> We discussed creating a table that shows compatibility between
>>>>>>>> concurrent RMA operations. A rough mockup of this table is
>>>>>>>> attached.
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> Jim.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> mpi3-rma mailing list
>>>>>>>> mpi3-rma at lists.mpi-forum.org
>>>>>>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-rma
>>>>>>>
>>>>>> <rma_op_matrix.pdf>
>>>>>> <rma_op_matrix.pptx>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rma_op_matrix.pdf
Type: application/pdf
Size: 36407 bytes
Desc: not available
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-rma/attachments/20111014/6bc7e422/attachment-0001.pdf>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rma_op_matrix.pptx
Type: application/vnd.openxmlformats-officedocument.presentationml.presentation
Size: 84223 bytes
Desc: not available
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-rma/attachments/20111014/6bc7e422/attachment-0001.pptx>
More information about the mpiwg-rma
mailing list