[mpich-discuss] disable-auto-cleanup send/receive example
Pavan Balaji
balaji at mcs.anl.gov
Thu Nov 3 14:38:41 CDT 2011
On 11/03/2011 01:58 PM, Rob Stewart wrote:
> In the "what to do", I want to remove the failed rank, "ranki", from the
> communication group, and so next time "send()" is called, the failed
> rank will not be hit by a round robin send in the future.
Here's approximately what I'd do.
init(){
MPI_Comm_dup(MPI_COMM_WORLD, &comm);
MPI_Comm_group(comm, &group);
}
send(){
err = MPI_Send(xs, x, MPI_INT, ranki, 0, comm);
if (err != MPI_SUCCESS) {
/* Exclude the failed rank */
MPI_Group_excl(group, 1, &ranki, &newgroup);
/* create new communicator excluding the failed rank */
MPI_Comm_create_group(comm, newgroup, 1, &newcomm);
group = newgroup;
comm = newcomm;
}
send(); // try again
}
Obviously, you need to check for return codes for all functions, which I
didn't do above.
-- Pavan
--
Pavan Balaji
http://www.mcs.anl.gov/~balaji
More information about the mpich-discuss
mailing list