NAMD

From UF HPC Wiki

Jump to: navigation, search

Contents

Introduction

From the NAMD Website:

NAMD, recipient of a 2002 Gordon Bell Award, is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems. Based on Charm++ parallel objects, NAMD scales to hundreds of processors on high-end parallel platforms and tens of processors on commodity clusters using gigabit ethernet. 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.

Basic Execution Instuctions

  • Run 'mpi-selector --set mvapich_intel10-0.9.9' to set the proper MPI environment.
  • Log out and log back in.
  • Make yourself a job script similar to the one in the wiki here: NAMD Sample Script
  • Submit the job.

Version 2.7 (b1)

MPI Executable

Build Date: 03/27/09
Compiler:   Intel (10.1.015)
Libraries:  FFTW (2.1.5)
            MVAPICH (0.9.9)
            charm++ (6.0)
Location:   /apps/namd/2.7b1/Linux-x86_64-MPI-icc

Notes:

  1. For charm++ build: ./build charm++ mpi-linux-amd64
  2. For NAMD configuration: ./config Linux-x86_64-MPI-icc --charm-arch mpi-linux-amd64
  3. Created a custom architecture file: arch/Linux-x86_64-MPI-icc.arch (below)
  4. To run this executable your MPI environment must be set to mvapich_intel10-0.9.9 via mpi-selector
NAMD_ARCH = Linux-x86_64
CHARMARCH = mpi-linux-amd64

CXX = mpiCC
CXXOPTS = -i-static -static-libgcc -O2 $(FLOATOPTS)
CXXNOALIASOPTS = -O3 -fno-alias $(FLOATOPTS)

CC = mpicc
COPTS = -i-static -static-libgcc -O2 $(FLOATOPTS)

FLOATOPTS = -ip -fno-rtti

Sample Script

The following script would submit a NAMD job running on 4 processors using mvapich (InfiniBand only). It is limited to one hour of runtime, and the job name will be "alanin". It runs namd using a configuration file named "alanin" located in the user's current (scratch) directory.

#!/bin/bash
#PBS -N alanin
#PBS -o alanin.out
#PBS -M <your email address here>
#PBS -j oe
#pbs -q submit
#PBS -l nodes=1:ppn=4:infiniband
#PBS -l walltime=1:00:00

IbEnabled=`/usr/local/sbin/IbEnabled` 
if [ $IbEnabled -gt 0 ]; then 
       echo "Running on IB-enabled node set"
       MPIRUN="mpiexec"
else
       echo "Running on GigE-enabled node set"
       echo "mvapich is not supported on GigE-only nodes"
       exit
fi

NAMD=/apps/namd/2.7b1/Linux-x86_64-MPI-icc/namd2
cd $PBS_O_WORKDIR
$MPIRUN $NAMD alanin > alanin.log 2>&1

Compilation Instructions

These are build instructions for namd. These notes are more for those that are building namd, and not for those that are simply using the software for research. If you just need to use namd, please use the precompiled versions that are located above.

CUDA Executable

Build Date: 04/01/09
Compiler:   GNU (4.1.2)
Libraries:  FFTW (2.1.5)
            CUDA (cudart)
            charm++ (6.0)
Location:   /apps/namd/2.7b1/Linux-x86_64-cuda

Notes:

  1. ./build charm++ multicore-linux64
  2. ./config Linux-x86_64 --with-cuda --charm-arch multicore-linux64
  3. cd Linux-x86_64
  4. make
  5. ./namd2 +idlepoll src/alanin
  6. wget http://www.ks.uiuc.edu/Research/namd/utilities/apoa1.tar.gz
  7. tar xvzf apoa1.tar.gz
  8. ./namd2 +idlepoll apoa1/apoa1.namd
  9. ./namd2 +devices 0,1 +idlepoll apoa1/apoa1.namd

Intel 10 Compiler Build

  1. Charm++
    1. Edit src/arch/common/cc-icc.sh
    2. Remove all instances of -fpic and -cxxlib-icc
    3. Save the changes
    4. ./build charm++ multi-core-linux64 icc
  2. NAMD
    1. Create appropriate Linux-x86_64-icc files in arch/
      1. Linux-x86_64-icc.arch
      2. Linux-x86_64-icc.fftw
      3. Linux-x86_64-icc.tcl
      4. Linux-x86_64-icc.cuda
    2. ./config Linux-x86_6-icc --with-cuda --charm-arch multicore-linux64-icc
    3. cd Linux-x86_6-icc
    4. make
1094  find . -exec grep "cxxlib-icc" {} \;
 1095  find . -exec grep "cxxlib-icc" {} \; -print
 1096  cd src/arch/common/
 1097  vi cc-icc.sh 
 1098  ls
 1099  cd ..
 1100  ls
 1101  cd ..
 1102  ls
 1103  cd ..
 1104  ls
 1105  ./build charm++ multicore-linux64 icc
 1106  man icc
 1107  man icc
 1108  ls
 1109  rm -rf multicore-linux64-icc/
 1110  find . -name cc-icc.sh
 1111  vi src/arch/vmi-linux/cc-icc.sh 
 1112  vi src/arch/common/cc-icc.sh 
 1113  ls
 1114  ./build charm++ multicore-linux64 icc
 1115  ls
 1116  cd ..
 1117  ls
 1118  cd namd2/
 1119  ls
 1120  rm -rf Linux-x86_64-icc/
 1121  ./config Linux-x86_64-icc --with-cuda --charm-arch multicore-linux64-icc
 1122  ls
 1123  cd Linux-x86_64-icc/
 1124  ls
 1125  make
 1126  ls
 1127  ./namd2 +idlepoll src/alanin
 1128  ls
 1129  wget http://www.ks.uiuc.edu/Research/namd/utilities/apoa1.tar.gz
 1130  ls
 1131  tar xvzf apoa1.tar.gz
 1132  ./namd2 +idlepoll apoa1/apoa1.namd