[gmx-developers] GMX_BARRIER in gmx_pme_do()

Carsten Kutzner ckutzne at gwdg.de
Tue Jul 7 15:26:21 CEST 2009

On Jul 7, 2009, at 4:38 AM, Zhang Cheng wrote:

> Hi,
> I am wondering whether the GMX_BARRIER(cr->mpi_comm_mysim) calls in  
> pme.c/gmx_pme_do() should be replaced by GMX_BARRIER(cr- 
> >mpi_comm_mygroup), especially when there are PME only nodes. I  
> understand (but I may be wrong) gmx_pme_do() is only called by a PP 
> +PME or PME-only processor, so mpi_comm_mygroup should be sufficient  
> in either case. On the other hand, mpi_comm_mysim will hang a PP  
> only processor if PP and PME are done on separate nodes.  I also  
> understand GMX_BARRIER is not invoked unless BARRIERS is defined,  
> but it still appears to be a little confusing to me.


you are completely right. If you define BARRIERS in mpelogging.h the  
in gmx_pme_do need to be cr->mpi_comm_mygroup, otherwise PME-only nodes
will wait forever at these barriers. This is true for all 8  
GMX_BARRIER calls in


Dr. Carsten Kutzner
Max Planck Institute for Biophysical Chemistry
Theoretical and Computational Biophysics
Am Fassberg 11, 37077 Goettingen, Germany
Tel. +49-551-2012313, Fax: +49-551-2012302

More information about the gromacs.org_gmx-developers mailing list