<div dir="ltr">Sorry, I&quot;m still don&#39;t understand.<div>When remote process fails, rest of processes get SIGUSR1, and by default are failed, because they don&#39;t have any signal handler.</div><div>If I&quot;ll create signal handler for SIGUSR1, I can&#39;t detect that one of remote/local processes dead. How can I recognize which remote process dead. Signal has only local host process information.</div>
<div><br></div><div>Anatoly.</div><div><br><br><div class="gmail_quote">On Mon, Oct 17, 2011 at 7:40 PM, Darius Buntinas <span dir="ltr">&lt;<a href="mailto:buntinas@mcs.anl.gov">buntinas@mcs.anl.gov</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im"><br>
On Oct 15, 2011, at 4:47 AM, Pavan Balaji wrote:<br>
<br>
&gt;<br>
&gt; On 10/11/2011 02:35 PM, Darius Buntinas wrote:<br>
&gt;&gt; I took a look at your code.  Mpiexec will send a SIGUSR1 signal to<br>
&gt;&gt; each process to notify it of a failed process (Oops, I forgot about<br>
&gt;&gt; that when I responded to your previous email).  If you need a signal<br>
&gt;&gt; for your application, you&#39;ll need to choose another one.  The signal<br>
&gt;&gt; handler you installed replaced MPICH&#39;s signal handler, so the library<br>
&gt;&gt; wasn&#39;t able to detect that the process had failed.<br>
&gt;<br>
&gt; Anatoly: In stacked libraries, you are supposed to chain signal handlers. Replacing another library&#39;s signal handlers can lead to unexpected behavior.<br>
<br>
</div>If you set the signal handler before calling MPI_Init, MPICH will chain your signal handler.<br>
<div class="im"><br>
&gt;<br>
&gt;&gt; Another problem is that MPI_Abort() isn&#39;t killing all processes, so<br>
&gt;&gt; when I commented out CreateOwnSignalHandler(), the master detected<br>
&gt;&gt; the failure and called MPI_Abort(), but some slave processes were<br>
&gt;&gt; still hanging in MPI_Barrier().  We&#39;ll need to fix that.<br>
&gt;<br>
&gt; Darius: What&#39;s the expected behavior here? Should a regular exit look at whether the user asked for a cleanup or not, and an abort kill all processes?<br>
<br>
</div>That&#39;s what I think it should do.  MPI_Abort should kill all processes in the specified communicator.  If you can&#39;t kill only the processes in the communicator, then it should kill all connected processes (i.e., the job, plus any dynamic procs).<br>

<font color="#888888"><br>
-d<br>
</font><div><div></div><div class="h5"><br>
&gt; -- Pavan<br>
&gt;<br>
&gt; --<br>
&gt; Pavan Balaji<br>
&gt; <a href="http://www.mcs.anl.gov/~balaji" target="_blank">http://www.mcs.anl.gov/~balaji</a><br>
<br>
_______________________________________________<br>
mpich-discuss mailing list     <a href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a><br>
To manage subscription options or unsubscribe:<br>
<a href="https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss" target="_blank">https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss</a><br>
</div></div></blockquote></div><br></div></div>