[AMBER-Developers] Parallel Ptraj

From: Ross Walker <ross.rosswalker.co.uk>
Date: Fri, 4 Sep 2009 19:03:46 +0100

Hi All,

I just want to bring your attention to some recent changes to ptraj in the
AMBER11 CVS Tree. Thanks to Paul Frybarger, an undergraduate at Hope
College, MI who spent the summer working with me there is now a parallel
version (MPI) of ptraj. Paul did an excellent job. At the same time he has
cleaned up a lot of the ptraj output as well as massively improving the way
ptraj handles random file access. While this does not have a huge impact on
NetCDF for ASCII files ptraj can now do true random access of the files.

Current supported parallel actions are:

Supported Actions:
angle, atomicfluct, average, center, checkoverlap, closest, contacts,
dihedrals, distance, image, principal, pucker, radgyr, randomizeions, rms,
strip, translate, watershell

If you use an action which is not parallel the code will currently default
back to serial operation. It is hoped that more actions can be made parallel
in the future including things like clustering and H-bond analysis. The
performance improvement due to the parallel I/O aspect will be very
dependent on your hardware such as whether you have a raid system, lustre
parallel file system etc.

I encourage you to try the code out and let me know of any problems you
encounter. You can build parallel ptraj using the -mpi option to
configure_at. This will build a ptraj.MPI executable linked against parallel
netCDF.

The following is some documentation that Paul has prepared that will
ultimately be added to the AmberTools manual:

Parallel ptraj

    Ptraj has been modified to include parallel support using mpi. To take
advantage of this feature, run the configure_at script with the mpi flag
(e.g. configure_at -mpi gcc), then run make with the parallel command (e.g.
make -f Makefile_at parallel). This will produce an executable in the
$AMBERHOME/exe/ directory called ptraj.MPI.
    The same ptraj source files are used to build ptraj in both serial and
parallel, using preprocessor definitions where needed. There is no change to
the syntax of the ptraj commands, so previous ptraj command scripts should
work and produce the same output. Currently not all actions are supported; a
list of which ones work in parallel is included below. Commands given to
parallel ptraj which are not on the list below will be ignored by the
program (after a warning message is printed).
    A large change to both the parallel and serial versions of ptraj is in
the way AMBER trajectory files are read in. In the old version, the whole
file would be read in and checked for errors first, then read in a second
time to perform the actions. On small trajectory files this was not a
problem, but for larger files this could take significantly more time. Now
the file is checked while the actions are being performed, which eliminates
the need to read the whole file twice. Secondly, the way in which the
coordinates are read in has been optimized which speeds up the read time.
Finally, seeking is used with the trajectory file in order to skip past the
frames that do not need to be processed. Before these frames would be read
in regardless.
    For example, if a trajectory file contains 10,000 frames, and we are
only interested in frames 2000 to 5000, skipping every other frame (offset
of 2), the old ptraj would read in all frames from 1 to 5000. The new ptraj
will now seek to the 2000th frame, and then only read in every other frame
by seeking to the new file position. So instead of reading in 5000 frames,
it will read in 1500 ((5000 - 2000) / 2). Compressed files are one
limitation to this because of the way they are decompressed by the program.
Thus compressed AMBER trajectory files have the benefit of being smaller,
but have the downside of additional time needed to decompress the files,
plus the inability to skip past unprocessed frames.

Supported Actions:
angle, atomicfluct, average, center, checkoverlap, closest, contacts,
dihedrals, distance, image, principal, pucker, radgyr, randomizeions, rms,
strip, translate, watershell

Action Notes:
. cannot use previous option in rms action because frames are divided
among processors and do not have previous frame information
. randomizeions does not produce same output trajectory as serial
version, even when using same seed, because frames are not analyzed in order



_______________________________________________
AMBER-Developers mailing list
AMBER-Developers.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber-developers
Received on Mon Sep 14 2009 - 11:51:35 PDT
Custom Search