NAMD
NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.
- Version: 3.0
- Machines: Clusters with InfiniBand network
- Location: /uufs/chpc.utah.edu/sys/installdir/r8/namd
Information:
To get details of the functionality of VMD visit the website: http://www.ks.uiuc.edu/Research/namd/
We have the smp cpu version (ml namd/3.0.verbs-smp) as well as a GPU build (ml namd/3.0.verbs-smp-CUDA). On the Lonepeak cluster, which does not have the InfiniBand network, use the namd/2.14.netlrts.
To Use:
The builds that we provide have support the InfiniBand network through the ibverbs interface. NAMD uses charm++ parallel objects for parallelization and as such the program launch uses the charmrun interface. One also has to create a specific host file that lists the nodes on which to run.
The SLURM script written in tcsh to run on notchpeak or kingspeak needs to include the following:
#load NAMD module
module load namd/3.0.verbs-smp
set NAMD3_FULLPATH = `which namd3`
#set up hostfile
srun hostname | sort > nodefile
echo group main > hostfile
set NODES = `cat nodefile`
foreach node ( $NODES )
echo host $node >> hostfile
end
# run NAMD via charmrun, substituting in your input and output file names
charmrun $NAMD3_FULLPATH ++n $SLURM_NNODES ++ppn 1 +setcpuaffinity ++nodelist hostfile ubq_ws.namd > ubq_ws.log
Note that in this case we run $SLURM_NTASKS processes per node (++n), each with one PEs (processing elements, +ppn). However, we encourage to try a few combinations of processes per node and PEs per process (e.g. 2 processes per node, $SLURM_CPUS_ON_NODE/2 PEs, etc.) , to see what combination gives the best performance, as this combination may be CPU type specific.
For Lonepeak, we recommend to run only on a single node, since the Ethernet network is relatively slow. That is:
module load namd/3.0.netlrts-smp
set NAMD3_FULLPATH = `which namd3`
# prepare hostfile for charmrun
srun hostname | sort > nodefile
echo group main > hostfile
set NODES = `cat nodefile`
foreach node ( $NODES )
echo host $node >> hostfile
end
# run NAMD via charmrun
charmrun $NAMD3_FULLPATH +p$SLURM_NTASKS +ppn1 ++nodelist hostfile +setcpuaffinity in.namd > in.log