Getting started with NAMD Benchmarks
The following best practices document is provided as courtesy of the HPC Advisory Council.
References
Overview
NAMD, is a parallel molecular dynamics code designed for high-performance simulation of large bio-molecular systems. Based on Charm++ parallel objects. NAMD uses the popular molecular graphics program VMD for simulation setup and trajectory analysis, but is also file-compatible with AMBER, CHARMM, and X-PLOR. For more information about NAMD, refer to
This post show the installation, configuration and slurm script execution for hpcx and intel MPI layers.
Versions and Setup Details
This example uses NAMD version 2.12 sources. Download
Setup used: Heimdall
OS RHEL 6.6
Intel Compiler
HPC-X installed
Prerequisites
Download NAMD_2.12_Source.tar.gz from here.
You may need to compile tcl and fttw packages, if not available on your server, refer NAMD homepage for more info.
Compile NAMD
1. Extract the NAMD tar file and charm tar
$ tar xfp NAMD_2.12_Source.tar.gz
$ cd NAMD_2.12_Source
$ tar xfp charm-6.7.1.tar
2. Check the available modules
$ module avail
$ module list
3. Clear old modules if needed
$ module purge
4. Load the intel compiler and the hpcx
$ module load intel/compiler/2017.4.196
$ module load hpcx-1.9/icc-2017
$ module list
Currently Loaded Modulefiles:
1) intel/compiler/2017.4.196 2) hpcx-1.9/icc-2017
5. Build the charm package
$ cd charm-6.7.1
$ ./build charm++ mpi-linux-x86_64 mpicxx ifort --no-shared -O3 -DCMK_OPTIMIZE=1
...
6. Configure the NAMD
$ ./config Linux-x86_64-icc --charm-arch mpi-linux-x86_64-ifort-mpicxx --with-fftw3
Selected arch file arch/Linux-x86_64-icc.arch contains:
NAMD_ARCH = Linux-x86_64
CHARMARCH = multicore-linux64-iccstatic
FLOATOPTS = -ip -axAVX
CXX = icpc -std=c++11
CXXOPTS = -static-intel -O2 $(FLOATOPTS)
CXXNOALIASOPTS = -O2 -fno-alias $(FLOATOPTS)
CXXCOLVAROPTS = -O2 -ip
CC = icc
COPTS = -static-intel -O2 $(FLOATOPTS)
Creating directory: Linux-x86_64-icc
Creating link: .. to .rootdir
Using FFTW build found in /home/namd/fftw
Writing build options to Linux-x86_64-icc/Make.config
Using Charm++ 6.7.1 build found in main build directory
Warning: No such directory .rootdir/charm-6.7.1/mpi-linux-x86_64-ifort-mpicxx
Using Tcl build found in /home/namd/tcl
Linking Makefile
Linking Make.depends
Linking src directory
Linking plugins directory
Linking psfgen directory
Generated Linux-x86_64-icc/Make.config contains the following:
CHARMBASE = .rootdir/charm-6.7.1
include .rootdir/arch/Linux-x86_64-icc.arch
CHARMARCH = mpi-linux-x86_64-ifort-mpicxx
CHARM = $(CHARMBASE)/$(CHARMARCH)
NAMD_PLATFORM = $(NAMD_ARCH)-MPI
include .rootdir/arch/$(NAMD_ARCH).base
include .rootdir/arch/$(NAMD_ARCH).tcl
include .rootdir/arch/$(NAMD_ARCH).fftw3
TCLDIR = $(HOME)/tcl
FFTDIR = /home/namd/fftw
You are ready to run make in directory Linux-x86_64-icc now.
7. Compile
$ cd Linux-x86_64-icc
$ make -j 10
...
$ ls -al namd2
-rwxrwxr-x 1 namd namd 27015710 Sep 27 16:44 namd2
Run the Benchmark
Download the input file from http://www.ks.uiuc.edu/Research/namd/utilities/apoa1.tar.gz or use other file.
Run the benchmark
$ mpirun -np <number of procs> <MPI FLAGS> namd2 apoa1.namd
Related articles