Namd
Program description
NAMD is a software package for simulating the behavior of molecules and systems of molecules composed of a huge number of atoms. It was developed at the University of Illinois and is used mainly in molecular biology. It allows the structure and behavior of genes and proteins to be studied; for example, NAMD was used to build a model of the HIV virus capsid - the protein envelope that protects the genetic code of the virus. Such models can be used to develop drugs that destroy unwanted proteins thanks to their shape, tailored to the application.
NAMD uses the Charm++ programming model, so it scales even for supercomputing applications.
Versions
On the computing machines, several versions and sub-versions of the NAMD software are available.
2.12
- Linux-x86_64-multicore (64-bit Intel/AMD single node)
- Linux-x86_64 (64-bit Intel/AMD with ethernet)
- Linux-x86_64-TCP (TCP may be better on gigabit)
- Linux-x86_64-ibverbs (InfiniBand via OpenFabrics OFED, not for Omni-Path, no MPI needed)
- Linux-x86_64-ibverbs-smp (InfiniBand plus shared memory, no MPI needed)
- Linux-x86_64-multicore-CUDA (NVIDIA CUDA acceleration)
- Linux-x86_64-ibverbs-smp-CUDA (NVIDIA CUDA with InfiniBand)
- Linux-x86_64-netlrts (Multi-copy algorithms)
- Linux-x86_64-verbs (Multi-copy algorithms on InfiniBand)
- Linux-x86_64-verbs-smp (Multi-copy algorithms on InfiniBand)
- Linux-x86_64-verbs-smp-CUDA (Multi-copy algorithms on InfiniBand)
- Linux-KNL-multicore (Intel Xeon Phi KNL processor single node)
Modules
In order to use the NAMD software, the appropriate module must be loaded. The list of available modules can be displayed by issuing the following command in the console.
module avail namd
Więcej informacji na temat modułów znajduję się na stronie Ładowanie modułów.
Running the calculations
Linux-x86_64-ibverbs-smp
SLURM (eagle)
- Script + sample input -> slurm.namd.smtv.tar.gz
Script:
#!/bin/bash #SBATCH --nodes 8 #SBATCH --tasks-per-node=28 #SBATCH --partition=fast #SBATCH --job-name=stmv-benchmark #SBATCH --mem-per-cpu=1GB #SBATCH --time=01:00:00 #SBATCH --error=job-%A-%a.err #SBATCH --output=job-%A-%a.out #SBATCH --exclusive # Load module module load namd/2.12-ibverbs-smp module load openmpi # Set personal variables #export INPUT_DIR="/home/admins/pbrona/benchmarks/namd/STMV_virus_benchmark/stmv" export INPUT_DIR="/home/admins/pbrona/benchmarks/namd/STMV_virus_benchmark" # Set ${TMPDIR} - shared storage mkdir -p /tmp/lustre_shared/${USER}/${SLURM_JOB_ID} export TMPDIR=/tmp/lustre_shared/${USER}/${SLURM_JOB_ID} NODELIST="${TMPDIR}/nodelist" ## Create nodelist echo "group main" >> ${TMPDIR}/nodelist for NODE in $(scontrol show hostname ${SLURM_JOB_NODELIST}); do echo "host ${NODE}" >> ${TMPDIR}/nodelist # ib #echo "host ${NODE}-ib" >> ${TMPDIR}/nodelist done # Copy data files #cp ${INPUT_DIR}/{stmv.*,*.inp} ${TMPDIR} #cd ${TMPDIR} cp -r ${INPUT_DIR}/stmv.tar.gz ${TMPDIR} cd ${TMPDIR} tar -zxvf stmv.tar.gz cd stmv # Run namd ${namd_root}/charmrun ++ppn ${SLURM_NTASKS_PER_NODE} ++verbose ++usehostname ++scalable-start ${namd_root}/namd2 +p ${SLURM_NTASKS} ++nodelist ${NODELIST} stmv.namd > stmv.out # Copy the results of calculations cp -r ${TMPDIR} ${SLURM_SUBMIT_DIR} rm -rf ${TMPDIR}