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: Barrett, Brian W (bwbarre_at_[hidden])
Date: 2012-04-03 15:42:35


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

-- 
  Brian W. Barrett
  Dept. 1423: Scalable System Software
  Sandia National Laboratories