I apologize for creating a new thread, I have accidentally deleted the original message. Not to split hairs, can you please clarify the following: After doing a non-blocking collective: The MPI_Wait would be satisfied as soon as the other ranks in the communicator have called the non-blocking collective (and may not yet have called MPI_Wait), right? Or do they wait until all of them have called MPI_Wait? On the contrary, if one of the ranks calls MPI_Wait (without calling the non-blocking collective, which is an incorrect program), will the MPI_Wait be satisfied? Thanks, Raghu [mpich-discuss] Non-blocking Collectives Jiri Simsa jsimsa at cs.cmu.edu Thu Jun 27 10:33:14 CDT 2013 Previous message: [mpich-discuss] Non-blocking Collectives Next message: [mpich-discuss] PMGR_COLLECTIVE ERROR Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] Hi Pavan, To rephrase, I am interested in understanding when would MPI_Wait() block indefinitely, waiting for other process to make progress. I believe that your response answers my question. Thanks again. --Jiri On Wed, Jun 26, 2013 at 4:48 PM, Pavan Balaji <balaji at mcs.anl.gov> wrote:
Hi Jiri,
On 06/26/2013 03:08 PM, Jiri Simsa wrote:
Thank you for your quick answer. I am trying to understand the blocking behavior of MPI_Wait in the case of non-blocking collectives. Is it safe to assume that, for a non-blocking collective, MPI_Wait is guaranteed to return once all other processes call the corresponding completion operation (e.g. MPI_Wait or MPI_Test)?
I'm not sure I understand your question. Are you asking if MPI_WAIT in a process is guaranteed to return after some finite amount of time after every other process has called MPI_WAIT? Then, yes.
-- Pavan Balaji http://www.mcs.anl.gov/~balaji