Hi All,
<br>
I am running Gromacs in a parallel environment using MPICH1.2.7p1.I started
mdrun on 3 nodes,execution is happening correctly but after that mdrun
process is not getting killed,i see mdrun process still present on the
nodes.
<br>
<br>
I have run mdrun with -debug option,following are the lines at the end
of the log.
<br>
<br>
--------------
<br>
In gmx_finalize. Will try to synchronize the ring
<br>
Succesfully did so! Exiting now.
<br>
--------------
<br>
<br>
<br>
I have checked "$Gromacs-root/src/gmxlib
<div id="mb_0">/network.c" file .I see that in
"gmx_finalize" function , execution enters the " #ifdef MPICH_NAME "
block and exits without calling MPI_Finalize() function.Is that the
reason for MPICH not killing the mdrun process it started on the
nodes.Following is the "gmx_finalize" function in my setup.
<br>
<br>
void gmx_finalize(t_commrec *cr)
<br>
{
<br>
int ret;
<br>
#ifndef GMX_MPI
<br>
gmx_call("gmx_finalize");
<br>
#else
<br>
#ifdef MPICH_NAME
<br>
if (debug)
<br>
fprintf(debug,"In gmx_finalize. Will try to synchronize the ring\n");
<br>
gmx_sync_ring(cr->nodeid,cr->nnodes,cr->left,cr->right);
<br>
if (debug)
<br>
fprintf(debug,"Succesfully did so! Exiting now.\n");
<br>
thanx(stdlog);
<br>
exit(0);
<br>
#else
<br>
if (debug)
<br>
fprintf(debug,"Will call MPI_Finalize now\n");
<br>
ret = MPI_Finalize();
<br>
if (debug)
<br>
fprintf(debug,"Return code from MPI_Finalize = %d\n",ret);
<br>
#endif
<br>
#endif
<br>
}
<br>
<br>
Thanks,
<br>
Sharath.
</div>