From ScientificComputing
Jump to: navigation, search


Chemistry, Molecular Dynamics


Nanoscale Molecular Dynamics (NAMD, formerly Not Another Molecular Dynamics Program) is computer software for molecular dynamics simulation, written using the Charm++ parallel programming model. It is noted for its parallel efficiency and is often used to simulate large systems (millions of atoms). It has been developed by the joint collaboration of the Theoretical and Computational Biophysics Group (TCB), and the Parallel Programming Laboratory (PPL), at the University of Illinois at Urbana–Champaign.

Available versions (Euler, old software stack)

Legacy versions Supported versions New versions
2.10 2.10_test

Environment modules (Euler, old software stack)

The namd module is a smart module, which checks for a loaded compiler module and MPI library then loads the corresponding NAMD version. For the module load command example, we use the standard compiler gcc/4.8.2 and the standard MPI library open_mpi/1.6.5 .
Version Module load command Additional modules loaded automatically
2.10 module load gcc/4.8.2 open_mpi/1.6.5 namd/2.10
2.10_test module load gcc/4.8.2 open_mpi/1.6.5 namd/2.10_test

How to submit a job

You need to submit your NAMD calculations in batch mode, through the batch system. To run a simulation with an input file use the following command:
bsub [LSF options] "namd2"

By default you can find the output in the lsf.oXXXXXXX output file where XXXXXXX corresponds to the job ID of the job. You need to replace [LSF options] with LSF parameters for the resource requirements of the job. Please find a documentation about the parameters of bsub on the wiki page about the batch system. For example,

bsub -W 12:00 -R "rusage[mem=500]" "namd2"

will request a runtime of up to 12 hours and only 500 MB of RAM.

Jobs that can run on a single node (24 cores) can be submitted in a similar way:

bsub [LSF options] -n N "charmrun +p N +isomalloc_sync namd2"

Parallel jobs

You can run NAMD on a single node (for example, up to 36 cores on Euler) or over multiple nodes.

To run on a single node, request a number of processors, N from the batch system and tell NAMD2 to use the same number of threads:

bsub [LSF parameters] -n N "charmrun +p N +isomalloc_sync +setcpuaffinity namd2"

where [LSF options] are the LSF parameters for the resource requirements of the job.

You can also run NAMD calculations on more than one node. Since multiple nodes will be used in this case, you must load an MPI module (such as MVAPICH2) before loading the NAMD module. Then use the following command to submit such a job to the batch system:

bsub [LSF parameters] -n N "mpirun namd2"
where [LSF options] are the LSF parameters for the resource requirements of the job.

License information

NAMD license


Performance expectations

To better decide how and where to run, the ApoA1 benchmark has been run using NAMD 2.10 for reference. All Euler nodes show similar performance.

ApoA1 Benchmark Performance Using Threaded NAMD 2.10 on Euler.
Cores Performance/(ns/day)
1 0.10
24 2.3±0.05
ApoA1 Benchmark Performance Using MPI-based NAMD 2.10 on Euler.
Cores Performance/(ns/day)
1 0.10
24 2.25±0.1
48 4.3
72 5.9
96 7.5
144 10.9