<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'><div style="text-align: left;"><br></div><br><br><br><hr id="stopSpelling">&gt; Date: Thu, 29 May 2008 14:51:13 +0200<br>&gt; From: spoel@xray.bmc.uu.se<br>&gt; To: gmx-users@gromacs.org<br>&gt; Subject: Re: [gmx-users] Mdrun kills all other(single CPU)mdrun processes started by same father process?<br>&gt; <br>&gt; Peter Mueller wrote:<br>&gt; &gt; Dear Gromacs users,<br>&gt; &gt; <br>&gt; &gt; on a smaller cluster I start with a small C + MPI program via a system call several single CPU Gromacs mdrun jobs.<br>&gt; &gt; (For the cluster admin it's OK, because my system does not scale well and I need lots of small independent trajectories.)<br>&gt; &gt; All the mdrun jobs are independent and shouldn't know from each other.<br>&gt; &gt; Just to make sure that the jobs don't kill each I included a "MPI_Barrier(MPI_COMM_WORLD)" before the process call "MPI_Finalize()".<br>&gt; &gt; Now I realized that when the first single CPU mdrun finishes a TERM signal is send to all other mdrun jobs which are started by my C program.<br>&gt; &gt; After getting the TERM signal this mdrun jobs do one additional md-step and then write out a summary before stopping.<br>&gt; &gt; <br>&gt; &gt; In the manual page of mdrun I found following hint:<br>&gt; &gt;    "When mdrun receives a TERM signal, it will<br>&gt; &gt;      set nsteps to the current step plus one<br>&gt; &gt;     ... all the usual output will be written to file.<br>&gt; &gt;     When running with MPI, a signal to one of<br>&gt; &gt;     the mdrun processes is sufficient, this signal<br>&gt; &gt;      should not be sent to mpirun or the mdrun<br>&gt; &gt;     process that is the parent of the others."<br>&gt; &gt; <br>&gt; &gt; I think mdrun is to clever :-). When it finishes it checks if the father process started any other mdrun jobs. If this is the case it send a TERM single to all this corresponding mdrun jobs.<br>&gt; &gt; Because my mdrun jobs are independent this behavior is my case wrong.<br>&gt; &gt; Is there any flag for "mdrun" to avoid this behavior?<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; Thanks<br>&gt; &gt; Peter<br>&gt; &gt; <br>&gt; Why not use  a script or queueing system?<br>&gt; Much easier for the user.<br>&gt; <br>&gt; -- <br>&gt; David van der Spoel, Ph.D.<br><br>I agree with David.<br><br>But mdrun nevers sends signals by itself.<br>The only thing that could happen it that one process finishes with a fatal error,<br>which would lead to all processes being terminated.<br><br>A script is the proper solution for your setup.<br>But if you really want to use MPI, mdrun already has the option -multi<br>which starts multiple simulations in parallel with MPI.<br><br>Berk.<br><br><br /><hr />Express yourself instantly with MSN Messenger! <a href='http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/' target='_new'>MSN Messenger</a></body>
</html>