NAMD-2.13 for LX
Webpage
http://www.ks.uiuc.edu/Research/namd/
Version
2.13
Build Environment
- Intel Compiler 18.0.5 (from Intel Parallel Studio 2018 update4)
- Intel MKL 2018.0.4 (from Intel Parallel Studio 2018 update4)
- Open MPI 3.1.0 (intel18 version)
Files Required
- NAMD_2.13_Source.tar.gz
- charmrun.patch
--- src/arch/mpi/charmrun.org 2018-11-26 16:02:00.000000000 +0900
+++ src/arch/mpi/charmrun 2018-11-26 16:04:16.000000000 +0900
@@ -37,11 +37,11 @@
+p[0-9]*)
pes=`echo $1 | awk '{print substr($1,3)}'`
;;
- -machinefile)
- machinefile=$2
- args=" "$1" "$2" "$args
- shift
- ;;
+# -machinefile)
+# machinefile=$2
+# args=" "$1" "$2" "$args
+# shift
+# ;;
++quiet)
QUIET=1
args=$args" "$1
@@ -88,7 +88,7 @@
mpirun -np $pes $args
# mpdallexit
else # normal case
- test -z "$machinefile" && args=-machinefile" "$PBS_NODEFILE" "$args
+ #test -z "$machinefile" && args=-machinefile" "$PBS_NODEFILE" "$args
test $QUIET -eq 0 && echo mpirun -np $pes $args
mpirun -np $pes $args
fi
- (downloaded in the following procedure)
- tcl8.5.9-linux-x86_64.tar.gz
- tcl8.5.9-linux-x86_64-threaded.tar.gz
Build Procedure
#!/bin/sh
VERSION=2.13
CHARM_VERSION=6.8.2
WORKDIR=/work/users/${USER}
SOURCEDIR=/home/users/${USER}/Software/NAMD/${VERSION}
NAME=NAMD_${VERSION}_Source
TARBALL=${SOURCEDIR}/${NAME}.tar.gz
LIBURL=http://www.ks.uiuc.edu/Research/namd/libraries
TCL=tcl8.5.9-linux-x86_64
TCL_URL=${LIBURL}/${TCL}.tar.gz
TCL_THREADED=tcl8.5.9-linux-x86_64-threaded
TCL_THREADED_URL=${LIBURL}/${TCL_THREADED}.tar.gz
PATCH0=${SOURCEDIR}/charmrun.patch
PARALLEL=12
#------------------------------------------------------------------
umask 0022
export LANG=""
export LC_ALL=C
module purge
module load intel/18.0.5
module load mpi/openmpi/3.1.0/intel
module load mkl/2018.0.4
cd ${WORKDIR}
if [ -d ${NAME} ]; then
mv ${NAME} namd_erase
rm -rf namd_erase &
fi
tar zxf ${TARBALL}
cd ${NAME}
tar xf charm-${CHARM_VERSION}.tar
cd charm-${CHARM_VERSION}
patch -p0 < ${PATCH0}
sed -i -e "s/_OPTIMIZE/_OPTIMIZE -xHost/" src/scripts/charmc
export CC=icc
export CXX=icpc
export F90=ifort
export F77=ifort
export MPICXX=mpicxx
export MPICC=mpicc
export MPIF90=mpif90
export MPIF77=mpif90
./build charm++ mpi-linux-x86_64-iccstatic \
--no-build-shared --with-production -j${PARALLEL}
cd mpi-linux-x86_64-iccstatic/tests/charm++/megatest
make pgm
mpirun -np ${PARALLEL} ./pgm
cd ../../../../
cd ../
wget ${FFTW_URL}
tar zxf ${FFTW}.tar.gz
mv linux-x86_64 fftw
wget ${TCL_URL}
tar zxf ${TCL}.tar.gz
mv ${TCL} tcl
wget ${TCL_THREADED_URL}
tar zxf ${TCL_THREADED}.tar.gz
mv ${TCL_THREADED} tcl-threaded
NEWOPTS="-xHost -static-intel -O3 -ip -fp-model fast=2 -DNAMD_DISABLE_SSE"
./config Linux-x86_64-icc \
--charm-arch mpi-linux-x86_64-iccstatic \
--with-mkl \
--with-python \
--cxx-opts "$NEWOPTS" \
--cxx-thread-opts "$NEWOPTS" \
--cxx-noalias-opts "$NEWOPTS -fno-alias" \
--cc-opts "$NEWOPTS"
cd Linux-x86_64-icc
make -j${PARALLEL}
make release
Note
- Version 2.11 might be faster in some cases. Please compare the performance before production run.
- (2022/6/29) Add omitted fftw downloading and unpacking parts. Sorry for the silly mistake.