[Mpi-forum] Progress Question

Jim Dinan james.dinan at gmail.com
Sat Oct 10 12:31:01 CDT 2020


Hi All,

A colleague recently asked a question that I wasn't able to answer
definitively. Is the following code guaranteed to make progress?

MPI_Barrier();
if rank == 1
  create_file("test")
if rank == 0
   while not_exists("test")
       sleep(1);


That is, can rank 1 require rank 0 to make MPI calls after its return from
the barrier, in order for rank 1 to complete the barrier? If the code were
written as follows:

isend(..., other_rank, &req[0])
irecv(..., other_rank, &req[1])
waitall(2, req)
if rank == 1
  create_file("test")
if rank == 0
   while not_exists("test")
       sleep(1);


I think it would clearly not guarantee progress since the send data can be
buffered. Is the same true for barrier?

Cheers,
 ~Jim.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpi-forum/attachments/20201010/5babfb19/attachment.html>


More information about the mpi-forum mailing list