Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] [EXTERNAL] Using One-sided communication with lock/unlock
From: Sebastian Rettenberger (rettenbs_at_[hidden])
Date: 2012-04-03 19:18:36


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" <rettenbs_at_[hidden]> 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