Monday, May 8, 2017

Compiling NAMD-2.12 With Intel compiler 2013, iMPI 4.1.0 and FFTW-2.1.5

Downloand NAMD Source Code

Step 1: Prepare for Environment Setup

source /opt/IntelClusterStudioXE2013/composer_xe_2013.1.117/mkl/bin/mklvars.sh intel64
source /opt/IntelClusterStudioXE2013/composer_xe_2013.1.117/bin/compilervars.sh intel64
source /opt/IntelClusterStudioXE2013/impi/4.1.0.024/intel64/bin/mpivars.sh intel64
source /opt/IntelClusterStudioXE2013/composer_xe_2013.1.117/tbb/bin/tbbvars.sh intel64
source /opt/IntelClusterStudioXE2013/itac/8.1.0.024/intel64/bin/itacvars.sh

export CC=icc
export CXX=icpc
export F77=ifort
export F90=ifort
Step 2: Building FFTW-2.1.5 with Intel
$ wget http://www.fftw.org/fftw-2.1.5.tar.gz
$ tar -zxvf fftw-2.1.5.tar.gz
$ cd fftw-2.1.5
$ ./configure F77=ifort CC=icc CFLAGS=-O3 FFLAGS=-O3 --enable-threads --enable-float --enable-type-prefix --prefix=/usr/local/fftw-2.1.5_intel-4.1.0
$ make -j 16
$ make install

Step 3: Building CHARM-6.7.1
$ cd NAMD_2.12_Source          
$ tar -xvf charm-6.7.1.tar
$ cd charm-6.7.1
./build charm++ {arch} {C compiler} {Fortran compiler} {other options} 
$ MPICXX=mpiicpc CXX=icpc ./build charm++  mpi-linux-x86_64 mpicxx ifort --with-production --no-shared -O3 -DCMK_OPTIMIZE=1
$ cd $NAMD_SRC
Step 4: Building TCL-8.5.9 with Intel
wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz 
wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz 
tar -xvf tcl8.5.9-linux-x86_64.tar.gz 
tar -xvf tcl8.5.9-linux-x86_64-threaded.tar.gz 
mv tcl8.5.9-linux-x86_64 tcl 
mv tcl8.5.9-linux-x86_64-threaded tcl-threaded
Step 5: Modify architecture files
Setup the CHARMBASE in $NAMD_SRC for Make.charm
# Set CHARMBASE to the top level charm directory.
# The config script will override this setting if there is a directory
# called charm-6.7.1 or charm in the NAMD base directory.

CHARMBASE = /usr/local/NAMD_2.12/charm-6.7.1


Setup the FFTW architecture files in $NAMD_SRC/arch/Linux-x86_64.fftw

FFTDIR=/usr/local/fftw-2.1.5_intel-4.1.0
FFTINCL=-I$(FFTDIR)/include
FFTLIB=-L$(FFTDIR)/lib -lsrfftw -lsfftw
FFTFLAGS=-DNAMD_FFTW
FFT=$(FFTINCL) $(FFTFLAGS)
Create file  $NAMD_SRC/Linux-x86_64-ics-2013.arch
NAMD_ARCH = Linux-x86_64
CHARMARCH = mpi-linux-x86_64-ifort-mpicxx
FLOATOPTS = -O2
CXX = icpc -std=c++11
CXXOPTS = -static-intel -O2 $(FLOATOPTS)
CXXNOALIASOPTS = -O3 -fno-alias $(FLOATOPTS)
CC = icc
COPTS = -static-intel -O2 $(FLOATOPTS)

Step 6: Compile NAMD.
Make sure you're in the main NAMD directory, then configure and run make:
$ ./config Linux-x86_64-ics-2013 --charm-base ./charm-6.7.1 --charm-arch mpi-linux-x86_64-ifort-mpicxx
$ cd Linux-x86_64-ics-2013
$ make -j 16
You should see the namd2 executable
Step 7: mpirun
$ mpirun -np 32 -machinefile $MACHINEFILE namd2  something.conf > job$LSB_JOBID.log

No comments:

Post a Comment