Got it. I now see each proc reporting the signal. Thank you.

On 25 July 2017 at 11:45, r...@open-mpi.org <r...@open-mpi.org> wrote:

> Again, you are sending the signal to just the one process whose pid you
> specified. We don’t pick that signal up and propagate it. If you signal the
> pid of mpiexec itself, then you’d see every proc report it.
>
> On Jul 25, 2017, at 11:40 AM, Marc Cooper <marccooper2...@gmail.com>
> wrote:
>
> Even this method of raising signal from user to mpiexec results in signal
> handling by only one process. I've modified my earlier example where each
> process publishes its pid, and I capture the pid and raise the signal using
> 'kill -SIGUSR1 <pid>' from another terminal.
>
> // test.c
>
> void handle_signal(int signal){
> if(SIGNAL==SIGUSR1)
> printf("received SIGUSR1 signal \n");
> }
> int main(){
> MPI_Init(NULL, NULL);
>
>    int my_rank;
>    MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
>
>    signal(SIGUSR1, handle_signal);
>
>    printf("My pid is: %d\n", getpid());
>
>     for (;;) {
>         printf("\nSleeping for 10 seconds\n");
>         sleep(10);
>
> MPI_Finalize();
> }
>
> When I run with 3 processes using mpirun -np 3 ./test, I expect the
> statement 'received SIGUSR1 signal' twice, but it prints just once. What am
> I missing here?
>
>
>
> On 25 July 2017 at 11:17, r...@open-mpi.org <r...@open-mpi.org> wrote:
>
>> I’m afraid we don’t currently support that use-case. We forward signals
>> sent by the user to mpiexec (i.e., the user “hits” mpiexec with a signal),
>> but we don’t do anything to support an application proc attempting to raise
>> a signal and asking it to be propagated.
>>
>> If you are using OMPI master, or the soon-to-be-released v3.0, then you
>> might be able to do what you seek using the PMIx event notification system.
>>
>> On Jul 25, 2017, at 10:15 AM, Marc Cooper <marccooper2...@gmail.com>
>> wrote:
>>
>> Hi all,
>>
>> I'm working to understand signal handling in OpenMPI. I read that "Open
>> MPI will forward SIGUSR1 and SIGUSR2 from mpiexec to the other
>> processes". My question is that is this feature enabled by default
>> installation.
>>
>> The scenario is that one MPI process raises a SIGUSR1, which has to be
>> detected by 'orted' which is then forwarded to other processes.
>>
>> In my test code, I define a custom signal handler for SIGUSR1 and
>> register this signal handler accordingly. I send a signal by using kill()
>> or raise(). I assume that ORTE daemon will receive this signal and has to
>> forward this signal to the remaining processes.
>>
>> // test.c
>>
>> void handle_signal(int signal){
>> if(SIGNAL==SIGUSR1)
>> printf("received SIGUSR1 signal \n");
>> }
>> int main(){
>> MPI_Init(NULL, NULL);
>>
>>    int my_rank;
>>    MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
>>
>> signal(SIGUSR1, handle_signal);
>>
>> if(my_rank == 1) // process with rank 1 raises SIGUSR1
>>      kill(getpid(), SIGUSR1);
>>
>> MPI_Finalize();
>> }
>>
>> If I run this as
>> mpirun -np 3 ./test
>>
>> I would expect to have the statement printed twice from the other two
>> processes. But when I run this code, it only prints once, and that too from
>> ORTE HNP, unlike the application processes. Do I need to call any other API
>> on orted explicitly pass this signal, so that the application processes
>> receive the SIGUSR1.
>>
>> -
>> Marc
>> _______________________________________________
>> users mailing list
>> users@lists.open-mpi.org
>> https://rfd.newmexicoconsortium.org/mailman/listinfo/users
>>
>>
>>
>> _______________________________________________
>> users mailing list
>> users@lists.open-mpi.org
>> https://rfd.newmexicoconsortium.org/mailman/listinfo/users
>>
>
> _______________________________________________
> users mailing list
> users@lists.open-mpi.org
> https://rfd.newmexicoconsortium.org/mailman/listinfo/users
>
>
>
> _______________________________________________
> users mailing list
> users@lists.open-mpi.org
> https://rfd.newmexicoconsortium.org/mailman/listinfo/users
>
_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users

Reply via email to