Hi everybody,
I am trying to run a master/slave set.
Because of the nature of the problem I need to start and stop (kill)
some slaves.
The problem is that as soon as one of the slave dies, the master dies
also.
This is what I am doing:
MASTER:
MPI_Init(...)
MPI_Comm_spawn(slave1,...,nslave1,...,intercomm1);
MPI_Barrier(intercomm1);
MPI_Comm_disconnect(&intercomm1);
MPI_Comm_spawn(slave2,...,nslave2,...,intercomm2);
MPI_Barrier(intercomm2);
MPI_Comm_disconnect(&intercomm2);
MPI_Finalize();
SLAVE:
MPI_Init(...)
MPI_Comm_get_parent(&intercomm);
(does something)
MPI_Barrier(intercomm);
MPI_Comm_disconnect(&intercomm);
MPI_Finalize();
The issue is that as soon as the first set of slaves calls MPI_Finalize,
the master dies also (it dies right after
MPI_Comm_disconnect(&intercomm1) )
What am I doing wrong?
Thanks
Sergio
|