pgi compiler 환경에서 namd 설치하기
pgi compiler 환경에서 namd 설치하기
1. 시스템 및 소프트웨어 환경
1.1 시스템은 x86기반 리눅스 클러스터로, MPI용 네트웍은 이더넷이며,
운영체제는 CentOS 4.2 (RedHat EL4 update2 호환) 입니다.
1.2 패키지 버전
– FFTW 2.1.5 ( http://www.fftw.org/fftw-2.1.5.tar.gz : 오픈소스 )
* 3.x버전이 최신이지만, MPI환경을 지원하지 않음
– Tcl 8.4.13 ( http://optusnet.dl.sourceforge.net/sour ··· c.tar.gz : 오픈소스 )
– NAMD 2.5 Source ( http://www.ks.uiuc.edu/development/down ··· id%3D722 : 오픈소스 )
* 2.6이 최신 버전이지만, mpirun시 애러가 발생함
* mpich는 이미 설치 되었다고 가정합니다.
* 이 문서의 작업 예는 root계정에서 실행하는 것입니다.
* vi를 실행하는것은, 그 이후에 나오는 코드를 해당 파일에 추가하거나,
편집하는 것을 뜻합니다.
2. fftw-2.1.5 설치
– double/single 두가지 precision을 모두 지원하기위해 다음과 같이
두번 컴파일 합니다.
==========================================================================
# tar xzvf ./fftw-2.1.5.tar.gz
# cd ./fftw-2.1.5
# ./configure CC=mpicc LDFLAGS=-L/usr/local/mpich/lib CPPFLAGS=-I/usr/local/mpich/include \\
F77=mpif77 –prefix=/usr/local/fftw-2.1.5 –enable-type-prefix –enable-mpi
# make
# make install
# make clean
# ./configure CC=mpicc LDFLAGS=-L/usr/local/mpich/lib CPPFLAGS=-I/usr/local/mpich/include \\
F77=mpif77 –prefix=/usr/local/fftw-2.1.5 –enable-type-prefix –enable-float \\
–enable-mpi
# make
# make install
==========================================================================
– 심볼릭 링크를 해줍니다.
==========================================================================
# ln -s /usr/local/fftw-2.1.5 /usr/local/fftw
==========================================================================
3. Tcl 8.4.13 설치
==========================================================================
# tar xzf ./tcl8.4.13-src.tar.gz
# cd ./tcl8.4.13/unix
==========================================================================
– 기존 리눅스배포본의 shared object tcl라이브러리와의 중복을 피하기 위해
“–disable-shared” 옵션을 주어 설정합니다.
==========================================================================
# ./configure –prefix=/usr/local/tcl8.4.13 –disable-shared
# make
# make test
# make install
# ln -s /usr/local/tcl8.4.13 /usr/local/tcl
# ln -s /usr/local/tcl/lib/libtcl8.4.a /usr/local/tcl/lib/libtcl.a
4. namd 소스 압축 해제
==========================================================================
# tar xzf ./NAMD_2.5_Source.tar.tar
==========================================================================
– namd소스 안에는 charm소스가 포함되어 있습니다.
5. charm 5.6 설치
==========================================================================
# cd ./NAMD_2.5_Source
# tar xf ./charm.tar
# cp -r ./charm /usr/local/charm-5.6
# cd /usr/local/charm-5.6
# ./build charm++ mpi-linux
# ln -s /usr/local/charm-5.6 /usr/local/charm
==========================================================================
6. NAMD 2.5 설치
– namd소스를 풀어 놓은 곳으로 이동하여, 소스를 “/usr/local/” 에 복사합니다.
==========================================================================
# cp -r ./NAMD_2.5_Source /usr/local/namd-4.6
# cd /usr/local/namd-4.6
# vi Make.charm
———————————————–
# Set CHARMBASE to the top level charm directory.
CHARMBASE = /usr/local/charm
#CHARMBASE = C:/cygwin$(HOME)/charm
———————————————–
# vi arch/Linux-i686.tcl
———————————————–
TCLDIR=/usr/local/tcl
TCLINCL=-I$(TCLDIR)/include
TCLLIB=-L$(TCLDIR)/lib -ltcl -ldl
TCLFLAGS=-DNAMD_TCL -DUSE_NON_CONST
TCL=$(TCLINCL) $(TCLFLAGS)
———————————————–
# vi arch/Linux-i686.fftw
———————————————–
FFTDIR=/usr/local/fftw
FFTINCL=-I$(FFTDIR)/include
FFTLIB=-L$(FFTDIR)/lib -lsrfftw -lsfftw
FFTFLAGS=-DNAMD_FFTW
FFT=$(FFTINCL) $(FFTFLAGS)
———————————————–
# vi arch/Linux-i686-MPI.arch
———————————————–
include .rootdir/arch/Linux-i686-pgCC.arch
———————————————–
# vi arch/Linux-i686-pgCC.arch
———————————————–
NAMD_ARCH = Linux-i686
CHARMARCH = mpi-linux
CXX = pgCC -DSOCKLEN_T=socklen_t
CXXOPTS = -O2 –no_exceptions -tpp6
CC = pgcc
COPTS = -fast -Mvect=assoc,prefetch -tpp6
———————————————–
# ./config tcl fftw Linux-i686-MPI
# cd Linux-i686-MPI
# make
# ln -s /usr/local/namd-4.6 /usr/local/namd
==========================================================================
4. 예제 실행
– 먼저 노드를 지정하기 위해, 머신파일을 생성합니다.
==========================================================================
# vi ~/mf
——————————————–
node001
node002
——————————————–
==========================================================================
– 소스에 포함된 alanin예제를 홈디렉토리로 이동합니다.
==========================================================================
# mkdir ~/alanin
# cp /usr/local/namd/src/alanin* ~/alanin/
==========================================================================
– cpu개수 2개, 머신파일 ./mf, 마스터노드에서는 실행하지 않는 옵션으로 mpirun을
실행합니다.
==========================================================================
# cd ~/alanin
# mpirun -np 2 -machinefile ~/mf -nolocal /usr/local/namd/Linux-i686-MPI/namd2 ./alanin
……
WRITING EXTENDED SYSTEM TO OUTPUT FILE AT STEP 9
WRITING COORDINATES TO OUTPUT FILE AT STEP 9
WRITING VELOCITIES TO OUTPUT FILE AT STEP 9
==========================================
WallClock: 2.809392 CPUTime: 2.809404 Memory: 2417 kB
End of program
==========================================================================