Thank you for the hint. I thought that "the same process" refers to the locked window, not to the calling process.
Maybe I can work around this restriction with a dummy window for synchronization ... Thanks again, Sebastian > On 4/3/12 12:01 PM, "Sebastian Rettenberger" <rette...@in.tum.de> wrote: > >I posted the bug report a week ago, but unfortunately I didn't get any > >response: > >https://svn.open-mpi.org/trac/ompi/ticket/3067 > > > >The example (see bug report) is very simple, however it still fails. > >Other MPI > >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