Re: [mpiwg-rma] Inconsistency of MPI_WIN_FENCE semantic
What do you mean? Passive target epoch. — Pavan On Feb 25, 2014, at 10:36 PM, Zhao, Xin <[email protected]> wrote:
What's the purpose of LOCK/UNLOCK? ________________________________________ From: mpiwg-rma [[email protected]] on behalf of Balaji, Pavan [[email protected]] Sent: Tuesday, February 25, 2014 10:30 PM To: MPI WG Remote Memory Access working group Subject: Re: [mpiwg-rma] Inconsistency of MPI_WIN_FENCE semantic
Whoops, sorry, I meant to add a LOCK/UNLOCK in there. Here’s the updated example:
Fence if (rank == 0) { LOCK; PUT(to rank 1); UNLOCK; } Fence Get(from rank 1) Fence
— Pavan
On Feb 25, 2014, at 10:28 PM, Zhao, Xin <[email protected]> wrote:
Hi Pavan,
Is Get posted on rank 0 or rank 1? Also Flush is only used for passive target.
Xin
________________________________________ From: mpiwg-rma [[email protected]] on behalf of Balaji, Pavan [[email protected]] Sent: Tuesday, February 25, 2014 10:22 PM To: MPI WG Remote Memory Access working group Subject: Re: [mpiwg-rma] Inconsistency of MPI_WIN_FENCE semantic
Your example is too simplistic. Here’s another example —
Fence if (rank == 0) { PUT(to rank 1); Flush } Fence Get Fence
Without barrier semantics, the above program will lead to incorrect results if GET is expecting to see the value deposited by the PUT. Are you saying this is an incorrect program? I’m not sure I agree with that.
The standard states that FENCE does not have barrier semantics when NOPRECEDE is given. I think the intention here was to say that it does have barrier semantics when that assertion is not given.
— Pavan
On Feb 25, 2014, at 10:10 PM, Rajeev Thakur <[email protected]> wrote:
The second sentence refers to case where there are a sequence of fences
Fence Fence Put Fence
The second fence above need not be a barrier particularly if it had a NOPRECEDE.
Note that in a fence-put-fence you are allowed to do a barrier in the first fence, but you are not required to. You can do a deferred mode where the first fence is a no-op, all RMA ops are queued, and everything is done in the second fence and determining that all processes have reached there.
Rajeev
On Feb 25, 2014, at 9:48 PM, "Balaji, Pavan" <[email protected]> wrote:
Besides, the second sentence says, if MPI_MODE_NOPRECEDE is given, it’ll not act as a barrier.
What’s the necessity for that if WIN_FENCE does not act as a barrier even when MPI_MODE_NOPRECEDE is not given.
— Pavan
On Feb 25, 2014, at 9:38 PM, Balaji, Pavan <[email protected]> wrote:
In practice, it’ll need to have barrier semantics. Otherwise, PUT will need to be a two-sided operation to ensure that it’s not issued before the other process calls MPI_WIN_FENCE.
— Pavan
On Feb 25, 2014, at 9:21 PM, Rajeev Thakur <[email protected]> wrote:
(1) On P440-P441 it say that "RMA operations on win started by a process after the fence call returns will access their target window only after MPI_WIN_FENCE has been called by the target process". This requires MPI_WIN_FENCE that starts an epoch to act as an barrier.
It only says "RMA operations on win started by a process after the fence call returns will access their target window only after MPI_WIN_FENCE has been called by the target process". NOT "This requires MPI_WIN_FENCE that starts an epoch to act as an barrier."
Why does the fence have to act as a barrier. The handshake could be done when first RMA operation is called after the fence.
Rajeev
On Feb 25, 2014, at 8:41 PM, "Zhao, Xin" <[email protected]> wrote:
Hi all,
There is an inconsistency of MPI_WIN_FENCE semantic in MPI 3.0 Standard that makes me confused:
(1) On P440-P441 it say that "RMA operations on win started by a process after the fence call returns will access their target window only after MPI_WIN_FENCE has been called by the target process". This requires MPI_WIN_FENCE that starts an epoch to act as an barrier.
(2) However, (1) contradict with the word at end of P441: "a call to MPI_WIN_FENCE that is known not to end any epoch (in particular a call with assert equal to MPI_MODE_NOPRECEDE) does not necessarily act as a barrier".
Should the word of (1) add: "when MPI_MODE_NOPRECEDE is not given"?
Thanks,
Xin
_______________________________________________ mpiwg-rma mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma
_______________________________________________ mpiwg-rma mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma
_______________________________________________ mpiwg-rma mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma
_______________________________________________ mpiwg-rma mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma
_______________________________________________ mpiwg-rma mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma
_______________________________________________ mpiwg-rma mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma _______________________________________________ mpiwg-rma mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma
_______________________________________________ mpiwg-rma mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma _______________________________________________ mpiwg-rma mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma
participants (1)
-
Balaji, Pavan