On Dec 12, 2011, at 9:45 AM, Josh Hursey wrote:

 For MPI_Comm_split, all processes in the input communicator (oldcomm
 or MPI_COMM_WORLD in your case) must call the operation since it is
 collective over the input communicator. In your program rank 0 is not
 calling the operation, so MPI_Comm_split is waiting for it to
 participate.

 If you want rank 0 to be excluded from the any of the communicators,
 you can give it a special color that is distinct from all other ranks.
 Upon return from MPI_Comm_split, rank 0 will be given a new
 communicator containing just one processes, itself. If you do not
 intend to use that communicator you can free it immediately
 afterwards.

You can also specify MPI_UNDEFINED as your color, in which case the output communicator in that process will be MPI_COMM_NULL. See MPI-2.2 p205.

Thank you, Josh and Jeff. That did it! I called MPI_COMM_split from my supervisor with color of MPI_UNDEFINED and key of 0. Then all _split() calls returned and I was able to do the work in my test program.

All the best,
Gary

Reply via email to