[mvapich-discuss] suggested minor feature

Mark Potts potts at hpcapplications.com
Mon Sep 17 23:59:59 EDT 2007


Jonathan,
    I finally managed to get HW and SW together at the same place
    and tested the mvapich patch with the changed cleanup strategy.
    It seems to work fine.

    I was able to cause failures of children (kill -9) and job cleanup
    still proceeded immediately.  Alternatively, I contrived for the
    normal exit of some processes and found that the parent did not
    kill the remaining processes.  It seems to work as advertised and
    solves the issue I raised w/o recourse to another env variable.

      regards,

Jonathan L. Perkins wrote:
> Mark Potts wrote:
>> Hi,
>>    Despite the many issues I've raised about MVAPICH job cleanup and
>>    timeouts (all resolved now it appears), I'd like to raise another
>>    related issue -- a suggestion.
>>
>>    We've found that a job that correctly has all processes call
>>    MPI_Finalize() at the end of their communications stages, can
>>    not permit any processes to terminate if it is desired for even
>>    a single thread to continue to work.  That is, after MPI_Finalize()
>>    is called and any processes correctly terminate there is only a
>>    10 second window in which any remaining processes will be allowed
>>    to run before mpirun_rsh kills the remaining children.  This
>>    presents a problem for codes that naturally complete the job's
>>    task in serial mode or codes in which debugging of a process is
>>    needed after MPI_Finalize().
>>
>>    The suggestion would be:
>>       to provide the timeout period (currently 10 seconds) as a
>>       VIADEV_* env variable, with default of 10, which users could
>>       then modify when 10 seconds was too little time for a remaining
>>       process.  By the same token this env variable could be used
>>       to trim the timeout period to a smaller value, when a user
>>       deemed 10 seconds to not be agressive enough.
>>          regards,
> 
> Mark:
> In light of your suggestion we took a look at how mpirun_rsh handles the 
> termination of its children processes.  With a small change in the 
> semantics we managed to remove the "timeout" entirely.
> 
> We now allow processes that exit cleanly to not effect the lifespan of 
> other processes.  In the case that a process doesn't exit cleanly, the 
> other processes will still destroyed like normal.
> 
> Can you try out the attached patch and let us know whether everything 
> works in the way that an end user would expect?  We also welcome any 
> further suggestions.  Thanks.
> 

-- 
***********************************
 >> Mark J. Potts, PhD
 >>
 >> HPC Applications Inc.
 >> phone: 410-992-8360 Bus
 >>        410-313-9318 Home
 >>        443-418-4375 Cell
 >> email: potts at hpcapplications.com
 >>        potts at excray.com
***********************************


More information about the mvapich-discuss mailing list