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

==========================================================================

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.