Re: [mpich-discuss] MCS lock and MPI RMA problem
On Mar 14, 2017, at 4:46 PM, Balaji, Pavan <[email protected]> wrote: Thanks. That's a bug in your code. In mcs-lock-fop.c:92, before you do an accumulate to notify the next rank, you need to reset your lmem[nextRank] back to -1. Otherwise, in the next iteration, you'll think that the value is set even if it is not. You can either do it using a local store followed by an MPI_WIN_SYNC or using MPI_Put or MPI_Accumulate. After that fix your program seems to work correctly.
A small clarification: I think you noticed the reset issue in your previous email as well, but setting it before acquire would be incorrect because of the reason I already pointed out. Setting it before the release completes, however, would be correct because it's within the epoch and does not conflict with the MODE_NOCHECK hint (you are algorithmically guaranteeing that there's no conflicting access to it). An additional small possible improvement: you can move the lock_all to the init function instead of doing it for each lock acquisition. That way you can reduce the number of locks. With the MODE_NOCHECK hint the lock_all is essentially a no-op with respect to lock acquisition, but it still does additional memory barriers which can be avoided. -- Pavan _______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
participants (1)
-
Balaji, Pavan