The MPI Standard currently states that communicator creation is collective and deterministic. (I did not go back and read the wording so I may be missing some nuance).  To me that means that when a communicator handle is returned, every process has certain pieces of information encoded in the opaque communicator object  that it can assume match at every member.  This shared view includes the number of processes negotiated and an agreement on which process corresponds to each rank. It does not mean that every process that was intended to be in the communicator is still alive and reachable.

Are you changing the rule that "communicator creation is collective and deterministic"?  If not, there are things which can occur before the "collective and deterministic" commit point and things that occur after.

It seems to me that MPI_Comm_size must return the number that was committed and if you need to find how many are left after post-commit problems, it demands a different call. If you need to find out how many were desired when fewer may have been committed, that too is another call.

   Dick




Dick Treumann  -  MPI Team          
IBM Systems & Technology Group
Dept X2ZA / MS P963 -- 2455 South Road -- Poughkeepsie, NY 12601
Tele (845) 433-7846         Fax (845) 433-8363