Re: Changing functions without recompiling

From: Nicholas Musolino (
Date: Mon Oct 18 2010 - 20:20:58 CDT

Alex K. has provided some super-helpful information, as always, about using tabulated potential functions.

I just wanted to check in and ask, are you sure that you (and your professor) are on the same page about what it takes to recompile NAMD? It's possible he's used to bigger (more complicated) software projects that spend a very long while for compile time.

I have found that compiling NAMD take a couple of minutes after a "make clean," and only half a minute (or less) after modifying one or two source files. This is with serial compiling, not with multiple CPUs.

The GNU make utility, which NAMD uses, will recompile only the changed source code (to make one .o object file for each .C source file) and then link all of the relevant files.

Anyways, Axel's response is probably better if you want to record a version of the potential you're using for each simulation, and there will be 1 "special" potential for each simulation. But if you want to include new terms and then run many simulations, recompiling shouldn't present any special barriers.

Hope this helps!


PS. I think it's awesome you're able to manage small cluster as a high school student... we're a group of half a dozen computational scientists/engineers and we're still trying to figure that out.

Nicholas Musolino
Ph.D. candidate, Department of Chemical Engineering, MIT | 617-253-6675 | Room E19-528

On Oct 18, 2010, at 5:53 PM, Cole Gleason wrote:

> Hello all,
> Just as a disclaimer, I would like to say I have no idea how NAMD works beyond simple simulations. I also have no real knowledge of C, although someone on my team has some. The extent of my programming expertise is a bit of Python and some Ruby. Since that is out of the way, here is my situation:
> I am a high school senior working with a few other students and my professor on some Molecular Dynamics research. I'm handling the admin side of things by building and keeping our small cluster running. What my professor wants to do is be able to change the functions and parameters of the pairwise interactions in simulations. While I don't think that is too hard, the problem is that he wants to do this without recompiling the code every time. He gave me some kind of Fortran90 function parser one of his friends wrote and wants me to allow the function parser to feed the equations to NAMD. The function parser seems to take a function string and create an internal representation of the function. My professor suggested we use some kind of C library to call the fortran code.
> Now, I think this is the wrong approach. It seems that even if this is possible, the performance hit will be significant. Someone told me that I should instead just rewrite the parts of the NAMD source code (or CHARMM perhaps?) we want to change and then somehow just recompile those sections. Is that possible? How do I go about doing that?
> Obviously this post is a little vague, so please tell me if you need any more information. Thanks in advance to anyone who responds.
> --
> Cole Gleason
> ----------------------
> Student, Marmion Academy
> Email:
> Website:

This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:54:38 CST