Newsgroups: comp.parallel.mpi
From: doss@ERC.MsState.Edu (Nathan E. Doss)
Subject: Re: MPI collective comm question
Organization: Mississippi State University
Date: 5 May 1995 03:30:58 GMT
Message-ID: <3oc65i$jre@NNTP.MsState.Edu>

Zhiwei Xu (zxu@monalisa.usc.edu) wrote:
: What happens when a member process of a group forgets to participate in a
: collective communication?

From the "Introduction" to the Collective chapter of the MPI draft:
  
   "A collective operation is executed by having all processes in the
    group call the communication routine, with matching arguments."
   
All processes *must* make the call.  A program that does not is
erroneous.

: The MPI spec seems to say that the above code is allowed, in that all 
: processes may continue, not bothered by process 1 not joining the bcast.
: The user does not know that process 1 is not receiving the bcasted value,
: and assumes the the incorrect final result to be correct.

What actually happens if a process in the communicator fails 
to call a collective operation is undefined.

From the "Introduction" to the Collective chapter of the MPI draft:

  "Collective routine calls can (but are not required to) return as
   soon as their participation in the collective communication is
   complete.  The completion of a call indicates that the caller is now
   free to access locations in the communication buffer. It does not
   indicate that other processes in the group have completed or
   even started the operation (unless otherwise indicated in the
   description of the operation). Thus, a collective communication call
   may, or may not, have the effect of synchronizing all calling
   processes. This statement excludes, of course, the barrier function."

--
Nathan Doss                  doss@ERC.MsState.Edu

