[mpiwg-persistence] progress rule vs. partitioned communication

Joachim Jenke jenke at itc.rwth-aachen.de
Wed Jan 11 08:04:45 CST 2023


Hi all,

while working on deadlock detection for partitioned P2P communication we 
could not really come to a conclusion, whether a variant of the 
following non-deadlock scenario is a deadlock with partitioned 
communication:

Process 0                Process 1
MPI_Isend(1,r)           MPI_Recv(0)
MPI_Recv(1)              MPI_Send(0)
MPI_Wait(r)

Transformed into partitioned communication:

Process 0                Process 1
MPI_Psend_init(1,r)      MPI_Precv_init(0,r)
MPI_Start(r)             MPI_Start(r)
MPI_Pready_range(all,r)  MPI_Wait(r)
MPI_Recv(1)              MPI_Send(0)
MPI_Wait(r)


The first example should not deadlock according to the process paragraph 
in MPI4,p75,l13pp:

 > A call to MPI_WAIT that completes a receive will eventually terminate
 > and return if a matching send has been started , unless the send is
 > satisfied by another receive. In particular, if the matching send is
 > nonblocking, then the receive should complete even if no call is
 > executed by the sender to complete the send.

The second example might potentially deadlock according to the rational 
in MPI4,p106,l3pp:

 > A naive implementation can simply wait for the entire message buffer
 > to be marked ready before any transfer(s) occur and could wait until
 > the completion function is called on a request before transferring
 > data.

If calling the completion function is necessary to eventually send the 
data, the second example will deadlock with Process 0 stalling in the 
MPI_Recv and Process 1 stalling in the MPI_Wait.
 From my perspective this contradicts the process definition for 
MPI_WAIT completing a receive where the matching send has been started.
Another question might be when a partitioned send is started in the 
sense of the process rule for MPI_WAIT.

I checked the current mpi-4.x branch and the referenced wording seems to 
be still the same.

Did we miss something?

Best
Joachim

-- 
Dr. rer. nat. Joachim Jenke

IT Center
Group: High Performance Computing
Division: Computational Science and Engineering
RWTH Aachen University
Seffenter Weg 23
D 52074  Aachen (Germany)
Tel: +49 241 80- 24765
Fax: +49 241 80-624765
jenke at itc.rwth-aachen.de
www.itc.rwth-aachen.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5903 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-persistence/attachments/20230111/456ac767/attachment.p7s>


More information about the mpiwg-persistence mailing list