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