On 4/3/12 12:01 PM, "Sebastian Rettenberger" <rettenbs_at_[hidden]> wrote:
>I posted the bug report a week ago, but unfortunately I didn't get any
>The example (see bug report) is very simple, however it still fails.
>versions work fine (e.g. Intel MPI).
>This is a real show stopper for me. Any help is appreciated.
Your code is actually erroneous, as you are trying to enter two access
epochs simultaneously on the same window. The text at issue is the 3rd
paragraph of section 11.4 of MPI-2.2:
Distinct access epochs for win at the same process must be disjoint.
On the other hand, epochs pertaining to different win arguments
may overlap. Local operations or other MPI calls may also occur
during an epoch.
Both lock calls will start a distinct access epoch on win, so you must
complete the local lock before attempting to start the remote lock.
This is actually a stupid and pointless rule in the MPI-2 one-sided
chapter. I'm not entirely sure why I took advantage of it when I
implemented the one-sided code, but I did, so I had to make the
implementation not allow multiple access epochs. The other
implementations you mention probably didn't optimize lock in a way that
made supporting multiple access epochs simultaneously difficult, and
therefore allow them.
The good news is that MPI-3 removed the access epoch restriction and as
part of the 1.7 release (hopefully this year), we'll have an MPI-3
compliant one-sided implementation.
Brian W. Barrett
Dept. 1423: Scalable System Software
Sandia National Laboratories