Dreamsongs Wiki


BiophysicsApplication

Here is another idea for an ApplicationExperience.

NAMD (http:/www.ks.uiuc.eduResearchnamd) is a parallel

molecular dynamics code designed for high-performance

biomolecular simulation. For example, it can be used to

simulate a section of a cell wall to determine how

certain proteins pass through the wall while others do not.

NAMD would model several hundred thousand atoms and the

molecular bonds between them.

One of their simulations involves "driving" a protein through

a pore in a cell wall. They use a 3D mouse with force feedback,

so when you push on the wall, it pushes back. To get the

protein through the pore, you have to twist and push. It is

a great one-on-one demo, but probably wouldn't work so well

for a large group.

However, they have lots of videos of various simulations that would be good for a large group.

NAMD is a supercomputer application, and one the 2002 Gorden Bell award winners. I have looked at the code, and it is a

fairly well-designed C++ application. It uses Charm++ for parallelization.

It was developed at UIUC, which is why I ran into it, but I

haven't had anything to do with its development.

The core algorithm is fairly simple and one that I've used

many times, but they have elaborated it a lot. The basic

algorithm is to keep track of each atom and its position and

velocity. At each time step, the force on each atom is calculated and the velocity is changed. Then the position of

each atom is changed according to its velocity. Repeat.

The trick is figuring out the force on each atom. If you

are doing this with planets and moons then the force you

care about is gravity, and every object has gravity on

every other. This gives an N squared algorithm for computing

all the forces. Gravity is not important for NAMD, but

electrical charge is, and it is pretty much the same as

gravity. NAMD does tricks of dividing the world into cells,

calculating the net electrical charge of a cell, and treating

all the elements of a far-away cell as a single point.

This makes calculating the force due to electrical charge

much easier.

NAMD has to worry about half a dozen forces, and the

electrical charge is only one of them. There are three

categories of forces. Electrical charge is an example

of ones with long range. Some forces

drop off much faster than gravity or electrical charge.

So, only atoms in neighboring cells must be compared.

These are short range forces. Finally,

molecular bonds only work between pairs and triples of atoms.

Each kind of force is processed differently, because they

are processed in parallel and different kinds of algorithms

are needed.

I would expect a talk to be half background in molecular

dynamics and half a description of the design of the system

and how objects helped them to get the job done.

Does this seem like it might be interesting? -RalphJohnson


Yes, again, yes. Couple these sessions with a couple of people talking about how Java 1.5 GenericsNon-blocking IOdotNet 2.0/AspectJ+J2EE saved their projects and their jobs, and people (I imagine!) will come. I was about to say that I probably wouldn't come, and then remembered that one of the talks I really remember most from last year was BjornFreemanBenson on UrbanSim: a practitioner report that was just this kind of thing. I remember Bjorn running overtime, but there was noone speaking after him, so the room just asked him to keep on going...


JamesNoble