NAMD 3.0.3 - SMP+CUDA (single node)

ウェブページ

http://www.ks.uiuc.edu/Research/namd/

バージョン

3.0.3

ビルド環境

  • GCC 13.3.1
  • Intel MKL 2025.3
  • CUDA 12.9 Update 1

ビルドに必要なファイル

  • NAMD_3.0.3_Source.tar.gz
    • tcl, tcl-threaded は http://www.ks.uiuc.edu/Research/namd/libraries より取得
    • fftw については MKL を利用

ビルド手順

#!/bin/sh
set -e

VERSION=3.0.3
CHARM_VERSION=8.0.0
TCL_VERSION=${TCL_VERSION:-8.6.13}
TCL_THREADED_VERSION=${TCL_THREADED_VERSION:-8.6.17}

WORKDIR=${NAMD_WORKDIR:-/gwork/users/${USER}}
SOURCEDIR=${NAMD_SOURCEDIR:-/home/users/${USER}/Software/NAMD/${VERSION}}

PARALLEL=${NAMD_PARALLEL:-12}
ARCH=${NAMD_ARCH:-Linux-x86_64-g++}
CHARM_ARCH=${CHARM_ARCH:-multicore-linux-x86_64}
PYTHON_PREFIX=${PYTHON_PREFIX:-/usr}

NAME=NAMD_${VERSION}_Source
TARBALL=${SOURCEDIR}/${NAME}.tar.gz

LIBURL=http://www.ks.uiuc.edu/Research/namd/libraries

TCL=tcl${TCL_VERSION}-linux-x86_64
TCL_ARCHIVE=${TCL}.tar.gz
TCL_URL=${LIBURL}/${TCL_ARCHIVE}

TCL_THREADED=tcl${TCL_THREADED_VERSION}-linux-x86_64-threaded
TCL_THREADED_ARCHIVE=${TCL_THREADED}.tar.gz
TCL_THREADED_URL=${LIBURL}/${TCL_THREADED_ARCHIVE}

# --------------------------------------------------------------------
umask 0022
export LANG=C
export LC_ALL=C

module -s purge
module -s load gcc-toolset/13
module -s load mkl/2025.3
module -s load cuda/12.9u1

cd ${WORKDIR}
if [ -d ${NAME} ]; then
 mv ${NAME} namd_erase
 rm -rf namd_erase &
fi

tar xf ${TARBALL}
cd ${NAME}

tar xf charm-${CHARM_VERSION}.tar
cd charm-${CHARM_VERSION}

export CC=gcc
export CXX=g++
export F90=gfortran
export F77=gfortran
export MPICXX=mpicxx
export MPICC=mpicc
export MPIF90=mpif90
export MPIF77=mpif90

./build charm++ ${CHARM_ARCH} \
     --no-build-shared --with-production -j${PARALLEL}

cd ../
wget ${TCL_URL}
tar xf ${TCL_ARCHIVE}
mv ${TCL} tcl
wget ${TCL_THREADED_URL}
tar xf ${TCL_THREADED_ARCHIVE}
mv ${TCL_THREADED} tcl-threaded

./config ${ARCH} \
      --charm-arch ${CHARM_ARCH} \
      --with-mkl \
      --with-python \
      --with-single-node-cuda \
      --python-prefix ${PYTHON_PREFIX}

cd ${ARCH}
make -j${PARALLEL}
make release

メモ