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

Reply via email to