작성자:oopslinux pgi compiler 환경에서 namd 설치하기 조회수:6821
등록일시:2006-10-04 17:00:38
oopslinux
http://oopslinux.com


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/sourceforge/tcl/tcl8.4.13-src.tar.gz : 오픈소스 )
- NAMD 2.5 Source ( http://www.ks.uiuc.edu/Development/Download/download.cgi?UserID=&AccessCode=&ArchiveID=722 : 오픈소스 )
* 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
==========================================================================



[관련글]
번호 제목 작성자 등록일 조회수
2   pgi compiler 환경에서 namd 설치하기 oopslinux 2006-10-04 6821  


           전체목록       윗글 아랫글