[gmx-developers] parallelization

Justin MacCallum jlmaccal at ucalgary.ca
Wed Jan 9 19:39:31 CET 2002


On Wed, 9 Jan 2002, Berk Hess wrote:
> Hi,

> > I'm working on parallelizing the pull code right now, but I'm having some
> > trouble figuring out exacly what is going on.  Is there any point at which
> > all nodes have the positions of all atoms?  I've looked through the source
> > code, but its a bit tricky to figure what's going on.  How do you debug an
> > MPI program.  I think that it might help me to understand whats happening
> > if I could step through the code. 
> All nodes have always have the current coordinates, but not all velocities
> and forces. This means you need to communicate velocities and/or forces
> each step, or you need to sum the partial v_com's and f_com's over the
> processors (the latter requires less communication, but might be more
> complicated to program).

I've been looking at this a little more, at it seems like the umbrella
sampling and AFM stuff should be relatively easy to parallelize.  I just
need to figure out exactly how the forces get moved around. Could you
provide a better description of what the shift and bshift members of
t_nsborder do?  What is the difference between the two?

I'm really not sure what the best way to get the constraint force stuff
parallelized is.  It requires the updated positions of the pulled group
and the reference group, which means it would need some additional
overhead.  I'm actually not that concerned about getting this part
parallelized as I don't intend to use it :)

> I only know a mpi debugger for sgi (cvd). The might also be tools for linux.

Apparently you can just use gdb, as described on www.lam-mpi.org.

> > 
> > Also, would it be worth while to produce some sort of developer
> > documentation that has an overview of the different routines and how they
> > fit together?  I think that it might encourage more developement if it was
> > a little easier to get started.  I wouldn't mind producing some
> > documentation and adding some more comments to the source files if someone
> > was willing to answer questions along the way.
> A very good idea which I have also asked for a long time ago, but the problem
> is to find someone willing to do it.

I looked into some automatic documentation tools.  The most promising one
is called doxygen (www.doxygen.org).  It extracts all functions, global
variables, enums, and structs from the source code and makes nice
cross-linked web pages.  It will also extract specially formatted comments
from the source and incorperate them into the web page.  The comment
format is relatively unobtrusive.  I would be willing to convert the
existing comments to doxygen format, as well as host the documentation as
long as that isn't a problem with any other developers, and as long as
they would be willing to use the new format when updating or adding

I also plan to produce some how-to/tutorial pages for developers.  For the
first one, I want to put some answers to questions I had when I was just
starting out.  Things like how to add a new program to the makefile, how
to compile for debugging, how to debug MPI, etc.  This could probably even
go into the developer FAQ.  I'd also like to produce a document to help
people getting starting writing analysis programs.  We need this for our
group anyway.


More information about the gromacs.org_gmx-developers mailing list