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

 

 

Reply via email to