[gmx-developers] Optimizing free energy calculations

JR Schmidt schmidt at chem.wisc.edu
Tue Dec 30 16:09:41 CET 2008

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 

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

More information about the gromacs.org_gmx-developers mailing list