[gmx-developers] Optimizing free energy calculations

Erik Lindahl lindahl at cbr.su.se
Wed Dec 31 10:55:21 CET 2008


As Berk mentioned we're already working on it (as part of a much  
larger generalization of the FE stuff) :-)

However, for most applications you are only perturbing a small part of  
the system, and since only the perturbed interactions use the special  
FE kernel the performance hit is negligible. A bigger hit comes if you  
use PME together with free energy, since that requires two reciprocal  
space evaluations.

Just out of curiosity - do you have a case where you are perturbing a  
large part of the system, or are you using PME? If not, it might be  
something else (read: bug :-)



On Dec 30, 2008, at 4:09 PM, JR Schmidt wrote:

> In its present incarnation, GROMACS is much slower when running a  
> free energy calculation.  From the code, this seems to be because  
> the assembly language kernel is not used when running free energy  
> calculation.  Given the increased complexity of the code required  
> for such calculations, this is not an unreasonable alternative.
> However, it seems that a dramatic speedup could be accomplished by  
> calculating dg/dlambda only every x steps, rather than every step.   
> In this way, the efficient assembly language kernel could be used  
> for the vast majority of time steps (using the interpolated  
> parameters), which the fortran non-bonded routine is used only every  
> x steps when dg/dlambda is calculated and stored.
> Since calculating dg/dlambda every step is rather useless anyway  
> (due to the statistical correlation), this seems like an excellent  
> way to increase efficiency.
> This addition would also have a wonder side effect.  By setting x =  
> 0, it would be trivial to rapidly equilibrate a system at a non-zero  
> value of lambda.  Right now, these equilibrations are very slow,  
> since the use the free energy kernel (since lambda is non-zero) even  
> though dg/dlambda is not of interest during the equilibration  
> period.  The only alternative that I can find currently is to make a  
> new topology file at each value of lambda, and then equilibrate  
> using 'free energy = no'.
> Is there a reason that this is not feasible?  Would it be difficult  
> to accomplish?
> -- 
> J.R. Schmidt
> Assistant Professor of Chemistry
> Room 8305D
> Department of Chemistry
> University of Wisconsin-Madison
> 1101 University Ave
> Madison, WI 53706
> Phone: (608) 262-2996
> Fax: (608) 262-9918
> E-mail: schmidt at chem.wisc.edu
> http://www.chem.wisc.edu/people/profiles/schmidt.php
> _______________________________________________
> gmx-developers mailing list
> gmx-developers at gromacs.org
> http://www.gromacs.org/mailman/listinfo/gmx-developers
> Please don't post (un)subscribe requests to the list. Use the www  
> interface or send it to gmx-developers-request at gromacs.org.

More information about the gromacs.org_gmx-developers mailing list