[gmx-users] Free energy calculation, parallel or sequential lambda runs ?
dmobley at gmail.com
Fri Dec 15 17:22:34 CET 2006
> I'm willing to do some FEP using the slow groth approach available in
> gromacs (as of 3.3.1). While retrieving articles and the mailing list, i
> found out there where arguments against sequential runs (particularly
> for avoiding the hysteresis problem), and other against parallel runs.
If you are doing slow growth, that is an entirely different thing from
doing parallel or sequential lambda runs. Slow growth gradually
changes lambda from 0 to 1 in a continuous manner over the course of a
simulation and I don't recommend it unless you have a particular
problem where this is the only way to do it or something. But
generally it leads to Hamiltonian lag.
> I would greatly appreciate your opinion about running a parallel (double
> precision) or sequential procedure (with 20 lambdas for 200ps of
> equilibration and 300 ps of 'production' for each lambda), and if
> possible some pointers towards documentation (i've read the manual, the
> Dill's group tutorial, the chapter from Leach, and some other
> publication from Aqvist, but still i'm not completely convinced of the
I need to write a tutorial for this sort of thing, but it is still in
the works. Can you be more specific about what exactly you're confused
I would DEFINITELY run parallel. If you run sequentially, there are
three or four big disadvantages: (1) What happens at each lambda is
coupled to what happened at the one before. (2) There can be
hysteresis (partly as a result of 1), which is bad. (3) You can't
benefit from the 'trivial parallelization' offered by running
independently at multiple lambda values, which usually will mean you
will run shorter simulations. That is, suppose you have 20 lambda
values, and you would want to run 1 ns for each. Now, you have to run
one 20 ns simulation if you do them in serial, or 20 1 ns simulations
if you run them in parallel. Unless you have only one computer, you
usually will finish your project a lot faster if you go with the
second option. (4) If you decide you need to simulate longer at one
particular lambda value (say, lambda=0.5), you then need to re-run ALL
of the simulations you ran after that one (i.e. lambda=0.5->1.0, if
you're moving to the right).
In terms of implementation, what I do is I prepare a particular
equiliibrated structure of my system in water. Then I set up run input
files for all of my different lambda values, and I then minimize and
equilibrate my system AGAIN at each different lambda value, so now I
have nlambda different equilibrated structures, each appropriate for a
different lambda value. I then run production beginning with each of
I generally do 1 ns of equilibration of my system as a whole
initially, then re-equilibrate at each lambda value for another
100ps+. But these numbers will vary depending on what you're studying.
If your system equilibrates only very slowly, you may need to
equilibrate a lot longer.
After equilibration, I run at least 1 ns of production at each lambda
value. Again, this will depend on your system and what you can
> Stéphane Téletchéa, PhD. http://www.steletch.org
> Unité Mathématique Informatique et Génome http://migale.jouy.inra.fr/mig
> INRA, Domaine de Vilvert Tél : (33) 134 652 891
> 78352 Jouy-en-Josas cedex, France Fax : (33) 134 652 901
> gmx-users mailing list gmx-users at gromacs.org
> Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-users-request at gromacs.org.
> Can't post? Read http://www.gromacs.org/mailing_lists/users.php
More information about the gromacs.org_gmx-users