[MPICH] order of one-sided communication
Hu Zhan
zhan at physics.ucdavis.edu
Wed Feb 21 19:21:38 CST 2007
Hi,
I'm wondering if it's guaranteed that the following MPI_Get will access
the target before MPI_Accumulate updates the same target (which appears
to be so on my cluster)
...
int l, one = 1;
MPI_Win_lock(MPI_LOCK_EXCLUSIVE, 0, 0, win);
MPI_Get(&l, 1, MPI_INT, 0, 0, 1, MPI_INT, win);
MPI_Accumulate(&one, 1, MPI_INT, 0, 0, 1, MPI_INT, MPI_SUM, win);
MPI_Win_unlock(0, win);
...
The MPICH2 standard seems to suggest that the order will not be
deterministic. If so, is there a way to ensure the order without
bracketing each function in a pair of MPI_Win_lock & MPI_Win_unlock
(because I don't want other processes to access and/or update the
target before a process finishes accessing and updating the same
target)?
Thanks!
Hu
More information about the mpich-discuss
mailing list