<div dir="ltr">Yes and no.  That ticket is calling out a potential starvation issue, whereas the issue you raised is deadlock.  There is no way to solve the deadlock issue through prioritization, since there could be an unbounded delay between your two calls to MPI_Win_lock and you can't prioritize a request you haven't received.<div>
<br></div><div>The deadlock issue could be resolved by requiring that all locks in MPI_Win_lock_all are obtained atomically, but this would be an unreasonable restriction on implementations.  Torsten Hoefler published a paper that uses this approach by creating a single global lock, but this has a negative impact on conventional lock/unlock.  The implementation I wrote for MPICH requests the shared lock at each process lazily, as needed, and you can certainly deadlock it as you described.<div>
<br></div><div> ~Jim.</div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 17, 2013 at 12:04 PM, Michael Raymond <span dir="ltr"><<a href="mailto:mraymond@sgi.com" target="_blank">mraymond@sgi.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">  Thanks. Searching the tickets just now, I found #363. Are my issue and that ticket related?<br>
<br>
<a href="https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/363" target="_blank">https://svn.mpi-forum.org/<u></u>trac/mpi-forum-web/ticket/363</a><div class="im"><br>
<br>
On 07/17/2013 10:54 AM, Jim Dinan wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Hi Michael,<br>
<br>
This believe that this can deadlock.  I agree that it's unfortunate that<br>
we didn't call it out in the spec, given that it would help to clarify<br>
the intended semantics.<br>
<br>
  ~Jim.<br>
<br>
<br>
On Wed, Jul 17, 2013 at 11:41 AM, Michael Raymond <<a href="mailto:mraymond@sgi.com" target="_blank">mraymond@sgi.com</a><br></div><div><div class="h5">
<mailto:<a href="mailto:mraymond@sgi.com" target="_blank">mraymond@sgi.com</a>>> wrote:<br>
<br>
       I've got a question about the use of MPI_Win_lock_all() in the<br>
    face of competing MPI_Win_lock(EXCLUSIVE) calls. Consider the<br>
    following calls sequence:<br>
<br>
<br>
    0                                                       1<br>
    MPI_Win_lock(EXCLUSIVE, 0)<br>
<br>
    MPI_Win_lock(EXCLUSIVE, 1)              MPI_Win_lock_all()<br>
<br>
    ....                                                    ....<br>
    MPI_Win_unlock(1)                               MPI_Win_unlock_all()<br>
    MPI_Win_unlock(0)<br>
<br>
       In this situation 0 has an exclusive lock on itself.<br>
    Simultaneously, 0 tries to get 1 exclusively and 1 tries to get a<br>
    shared lock on everyone. If 0 gets lucky, it will get to go first<br>
    and everything will go fine. If OTOH 1 locks itself shared and then<br>
    tries to lock 0 shared, deadlock ensues. You could argue that there<br>
    should be some global queue / governor that lets 0 go first, but<br>
    then I could see running into scalability problems.<br>
<br>
       I can't find any place in the standard that says if the user<br>
    shouldn't do this, or if deadlock is allowed, or if the MPI<br>
    implementation should figure things out on its own. Thoughts?<br>
<br>
    --<br>
    Michael A. Raymond<br>
    SGI MPT Team Leader<br>
    (651) 683-3434<br>
<br></div></div>
    ______________________________<u></u>___________________<br>
    mpi-forum mailing list<br>
    <a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a> <mailto:<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-<u></u>forum.org</a>><br>

    <a href="http://lists.mpi-forum.org/__mailman/listinfo.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/__<u></u>mailman/listinfo.cgi/mpi-forum</a><br>
    <<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/<u></u>mailman/listinfo.cgi/mpi-forum</a><u></u>><div class="im"><br>
<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
mpi-forum mailing list<br>
<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/<u></u>mailman/listinfo.cgi/mpi-forum</a><br>
<br>
</div></blockquote><div class="HOEnZb"><div class="h5">
<br>
-- <br>
Michael A. Raymond<br>
SGI MPT Team Leader<br>
(651) 683-3434<br>
<br>
</div></div></blockquote></div><br></div>