Hi ,

 

I have two MPI processes (server and client)  launched independently by two different mpiexec command. (mpich-3.0.4, sock-device)

1>    mpiexec –disable-auto-cleanup –n 1 ./server

2>    mpiexec –disable-auto-cleanup –n 1 ./client

 

The server opens a port and does MPI_Comm_accept.

The client gets the port information and does MPI_Comm_connect and hence we get a new intercommunicator.

I don’t do MPI_Comm_merge.

 

I have installed my own signal handler for SIGUSR1 before even I call MPI_Init ( I guess, this will automatically chain the signal handler).

 

>> signal (SIGUSR1, mysignalhandler);

 

Now suppose, the ‘client’ process gets killed ( I forcefully kill the process by signal 9), I thought I would get SIGUSR1 in the process ‘server’.

However, I don’t get any signal in ‘server’ process.

Am I doing something wrong?

I have noticed that if I start 4 client processes with single mpiexec command, and one client gets killed, rest of the 3 clients receive SIGUSR1.

 

Does this mean, SIGUSR1 is not forwarded across processes connected using inter-communicator?

 

 

Thanks,

Hirak