[Mpi-forum] Progress Question

Skjellum, Anthony Tony-Skjellum at utc.edu
Sun Oct 11 13:27:54 CDT 2020


Rajeev, No, I don't think so.  Did you all disagree with my reasoning?
Tony



Anthony Skjellum, PhD

Professor of Computer Science and Chair of Excellence

Director, SimCenter

University of Tennessee at Chattanooga (UTC)

tony-skjellum at utc.edu  [or skjellum at gmail.com]

cell: 205-807-4968


________________________________
From: mpi-forum <mpi-forum-bounces at lists.mpi-forum.org> on behalf of Thakur, Rajeev via mpi-forum <mpi-forum at lists.mpi-forum.org>
Sent: Sunday, October 11, 2020 2:23 PM
To: Jim Dinan <james.dinan at gmail.com>
Cc: Thakur, Rajeev <thakur at anl.gov>; Main MPI Forum mailing list <mpi-forum at lists.mpi-forum.org>
Subject: Re: [Mpi-forum] Progress Question


Does it mean that in the following program, although all processes have called barrier, some process may not exit the barrier for 100 days?



MPI_Init

MPI_Barrier

sleep(100 days)

MPI_Finalize



Rajeev





From: Jim Dinan <james.dinan at gmail.com>
Date: Sunday, October 11, 2020 at 10:31 AM
To: "Thakur, Rajeev" <thakur at anl.gov>
Cc: Main MPI Forum mailing list <mpi-forum at lists.mpi-forum.org>
Subject: Re: [Mpi-forum] Progress Question



Hi Rajeev,



Yes, that's the question and my initial answer was the same as yours. However, we then started talking about the implementation of the barrier, which led to the second example. For example, consider a situation where there is an error in transmission and the implementation needs to enter the progress engine to retry a send operation in software.



 ~Jim.



On Sat, Oct 10, 2020 at 5:10 PM Thakur, Rajeev <thakur at anl.gov<mailto:thakur at anl.gov>> wrote:

Jim,

      I don’t fully understand your question. Is it “If all processes reach MPI_Barrier, are they guaranteed to exit the barrier without the need for any other MPI function to be called on any process?” I would say yes.



Rajeev





From: mpi-forum <mpi-forum-bounces at lists.mpi-forum.org<mailto:mpi-forum-bounces at lists.mpi-forum.org>> on behalf of Jim Dinan via mpi-forum <mpi-forum at lists.mpi-forum.org<mailto:mpi-forum at lists.mpi-forum.org>>
Reply-To: Main MPI Forum mailing list <mpi-forum at lists.mpi-forum.org<mailto:mpi-forum at lists.mpi-forum.org>>
Date: Saturday, October 10, 2020 at 12:31 PM
To: Main MPI Forum mailing list <mpi-forum at lists.mpi-forum.org<mailto:mpi-forum at lists.mpi-forum.org>>
Cc: Jim Dinan <james.dinan at gmail.com<mailto:james.dinan at gmail.com>>
Subject: [Mpi-forum] Progress Question



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/20201011/06013994/attachment-0001.html>


More information about the mpi-forum mailing list