[gmx-developers] Interactive Molecular Dynamics
ckutzne at gwdg.de
Wed Feb 1 18:06:33 CET 2012
Am Feb 1, 2012 um 5:52 PM schrieb Berk Hess:
> Carsten started cross-posting. I'll answer here.
> This is very nice!
> Are there really only 4 extra conditionals in do_md?
There is an init and a finalize routine and 3 extra conditionals
in the loop over the MD steps.
> I assume those are within ifdef's.
The code is in two files, imd.c and imdsocket.c in mdlib.
> If that's the case we can put it in 4.6.
We also added an entry in the tpr file so that one can also choose to send
to IMD a smaller subgroup of the positions. One could leave away the water for
large system, for example. For old tpr files we have no choice and assemble
and send all positions to VMD.
> The only question is then how this is configured in cmake and if should be on by default.
At least it would be easy to switch it on then for everybody.
> On 01/27/2012 02:51 PM, Martin Hoefling wrote:
>> Hey Folks,
>> Carsten and myself would like to contribute a patch for the release-4-6 implementing IMD on the "Feature Wishlist". This allows Gromacs simulations to be "remote controlled" like NAMD from VMD. The patch implements the same protocol as NAMD-VMD. Below, the features are summarized. Also below, we require your feedback if we should / before submit(ting) to gerrit code review.
>> -Supports md, steep, lbfgs and cg integrator.
>> -Pulling from VMD in MD integrator.
>> -Runs in parallel with DD and PD.
>> -Virtually no performance impact (4 bool checks in mainloop) when disabled (default).
>> -An IMD group can be specified in tpr to restrict the coordinate transmission to VMD and to pull on parts of the system only.
>> -Molecules are made whole to avoid pbc artifacts in VMD.
>> -Also works on windows using the winsock library.
>> -IMD can be completely deactivated during cmake.
>> sys/socket.h and netinet/in.h on unix systems and I guess on CYGWIN too.
>> Winsock.h and Windows.h on Windows MSVC builds.
>> The IMD functionality is in 4 files:
>> The actual IMD stuff:
>> imd.h and imd.c
>> Socket communication routines.
>> imdsocket.h & imdsocket.c
>> imd.h exports 6 public functions, which are used in minimize.c, md.c and sim_util.c
>> Open questions / To discuss:
>> -Shall we include this patch into 4.6?
>> We think yes, since it changes virtually nothing when disabled. Alternatively one could also disable the entire code by default during compilation. It would, however, require incrementing the tpr file format, since there the
>> IMD group atom numbers are stored.
>> -Should enable or disable be the default during compilation?
>> -Enabling currently works by setting one or more environment variables during runtime:
>> GMX_IMDPORT, GMX_IMDFREQ, GMX_IMDWAIT, GMX_IMDTERM, GMX_IMDALLOWPULL
>> We thought its best like this to avoid inflation of mdrun switches. What do you think?
>> -Are there any features missing?
>> If to be merged into release-4-6, we would also write/add:
>> -IMD logfile, similar to pullf.xvg
>> -Wallcycle counters
>> -Section for the Gromacs Manual
>> Best wishes
>> Martin and Carsten
> gmx-developers mailing list
> gmx-developers at gromacs.org
> 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