# NAMD

NAMD is a parallel, object-oriented molecular dynamics code designed for high-performance simulation of large biomolecular systems.

NAMD uses a variant of spatial decomposition that uses cubes whose dimensions are slightly larger than the cutoff radius. Thus, atoms in one cube need to interact only with their neighboring cubes; there are 26 such neighboring cubes. For each pair of neighboring cubes, NAMD assigns a non-bonded force computation object, which can be independently mapped to any processor. The number of such objects is therefore 14 times (26/2 + 1 self-interaction) the number of cubes. Forces due to covalent bonds within biomolecules are represented via a sum of 2-body (bond), 3-body (angle), and 4-body (dihedral and improper) terms which follow the topology of the molecule. In order to minimize communication while avoiding redundant calculations, a force computation object is created for each cube and its upstream neighbors, these being the (at most) 7 neighboring cubes at equal or greater coordinates along all three axes. Bonded forces among sets of (2, 3, or 4) atoms are calculated by this object if and only if the base cube coordinates are equal to the minimum of the cube coordinates for all constituent atoms along each axis. NAMD works with AMBER and CHARMM potential functions, parameters, and file formats.

For workstation clusters and other massively parallel machines with special high-performance networking, NAMD uses the system-provided MPI library (with a few exceptions) and standard system tools such asmpirun are used to launch jobs. Since MPI libraries are very often incompatible between versions, you will likely need to recompile NAMDand its underlying Charm++ libraries to use these machines in parallel (the provided non-MPI binaries should still work for serial runs.)The provided charmrun program for these platforms is only a script that attempts to translate charmrun options into mpirun options, but due to the diversity of MPI libraries it often fails to work.

Charm++ is an object-oriented message passing parallel programming model which has mainly been used in realm of HPC and scientific computing. It can be used to write parallel applications that run on a variety of machines ranging from a single notebook/desktop computer to computer clusters containing tens of thousands of processors.

For the DEISA benchmarking we are using version 6.1 of Charm and the version 2.7b1 of NAMD.

## More information