CentOS 4.4 및 5.0 에서 사용하였다.
컴파일러 설치 -> AMBER 9 single 버전 설치 -> open mpi 라이브러리 설치 -> AMBER 9 parallel 버전 설치 순이다.
아래에 설명된 /home/ 은 NFS 경로이다.
*****************************************************************
* ** open mpi 나 amber9 의 make 과정에서 오류가 나면 오류 *
* 해결후 반드시 make clean 후 다시 make *
*****************************************************************
* g95 설치
①g95-x86-linux.tar 를 받아서 압축 풀고 압축 푼 디렉토리가 /home/xxxx/g95-install 이라면,
] ln -s /home/xxxx/g95-install/bin/*g95* /home/xxxx/bin/g95
(xxxx는 자기아이디이거나 관리자의 경우 모든 사용자에게 공통으로 쓰도록 하고 싶으면 xxxx는 common 과 같이 별도의 디렉토리)
② PATH 환경변수에 방금 생성된 링크가 있는 폴더를 추가한다.
(.bashrc 나 .bash_profile 에 PATH=$PATH:/home/xxxx/bin 을 써준다.)
③ 로그아웃 후 다시 로그인해서 (.bashrc나 .bash_profile의 내용이 적용되기 위해서)
] which g95 쳐서 /home/xxxx/bin/g95 가 제대로 나오는지 확인한다.
* AMBER serial 설치
(X system 쓸지 모르니 ssh로 이동)
① 받은 amber9 압축풀고 bugfix 후 build 한다.(/home/xxxx/amber9에 풀었다.)
bugfix는 http://amber.scripps.edu/bugfixes 에서 다운로드
] zcat amber9.taz | tar xv &
] cd amber9
] patch -p0 -N -r patch-rejects < bugfix.all
] cd src
] ./configure -athlon g95 ( build 및 compile하는 컴퓨터가 SSE와 SSE2를 지원하는 cpu 일 경우 -p4라고 해준다. )
② Compile 한다.
( [make clean )
] make serial
③ .bashrc 에 환경변수 추가
PATH=$PATH:/home/xxxx/amber9:/home/xxxx/amber9/exe
AMBERHOME=/home/xxxx/amber9
다시 로그인한 후 다음과 같이 확인해본다.
④ test 해본다.
] cd $AMBERHOME/test
] make test.serial
* open mpi 설치
설치 요구사항
– 각노드간에 rsh 로 이동및 명령 실행이 추가적인 암호입력없이 가능해야함
– glibc 2.3.2 버전 이상만 (버전 확인은 rpm -qa glibc 명령을 입력)
– 여기서는 g95 컴파일러를 이용하기 때문에 g95가 설치되어 있어야함
① open.mpi.1.tar.gz 를 압축받아서 푼다.
] gunzip open.mpi.1.tar.gz
] tar xf open.mpi.1.tar
①-(1) Build 를 한다.
] cd openmpi.1.x.x
] makdir build
] cd build
] ../configure –prefix=/home/xxxx/openmpi CC=gcc F77=g95 FC=g95
①-(2) Compile 한다 이때 컴파일러 지정변수가 제대로 안먹힐 수 있으므로 alias 지정을 해준다.
] alias f90=g95
] alias f77=g95
] alias fc=g95
] make all install
② .bashrc을 수정하여 환경변수 추가한다. (root 의 경우는 각 노드마다 모두 수정되어야 한다.)
PATH=$PATH:/home/xxxx/openmpi/bin:/home/xxxx/openmpi/lib:/home/xxxx/openmpi/include
MANPATH=$MANPATH:/home/xxxx/openmpi/man
MPI_HOME=/home/xxxx/openmpi
LD_LIBRARY_PATH=/home/xxxx/openmpi/lib
(LD_LIBRARY_PATH 환경변수를 위와 같이 지정해도 AMBER 깔 때 ld.so.O 요 파일을 못찾겠다거나
이 파일과 관련된 에러가 나타날 수 있다. 이것을 방지하기 위해 root 권한으로 다음과 같은 과정을 추가적으로 거친다.)
②-(1) root 로 로그인해서
/etc/ld.so.conf 파일을 열어서 마지막줄에 /home/xxxx/openmpi/lib 를 추가해준다.
/sbin/ldconfig 실행
이 과정은 각 노드에 대하여 한번씩 거쳐준다.
환경변수를 .bashrc 에 넣었으므로 로그아웃후 로그인
]which mpiexec
]which mpirun
등의 명령어로 각 노드에서 확인해본다.
③ openmpi/etc 에 보면 default 설정 파일들이 있다.
(1) openmpi-default-hostfile 을 수정하여 다음과 같이 써준다.
node3 slots=2 (단, GLIBC 2.3.2 버전 이상의 노드들만)
node4 slots=2
node5 slots=2
.
.
.
(2) openmpi-mca-params.conf 에는 pls_rsh_agent=rsh 라고 **반드시** 추가
* AMBER parallel 설치
(병렬 버젼의 AMBER를 설치하려면 mpi가 있어야 하는데
여기서는 OPEN MPI를 기준으로 하며 어떤 MPI 컴포넌트라 하더라도 같은
AMBER와 같은 컴파일러로 컴파일하는 것이 오류를 줄일 수 있다.)
① 병렬로 build 한다.
] cd amber9
] cd src
] ./configure -openmpi -athlon g95
② 생성된 config.h 를 열어서
FC=g95 를
FC=$(MPI_HOME)/bin/mpif90 이나
FC=/home/xxxx/openmpi/bin/mpif90 으로 바꾼다. (아래것을 추천)
여기에 대해서 설명을 하자면 mpif90 은 open mpi가 가지고 있는 wrapper 이다.
실행과정에서 보면 위와같이 수정해도 어차피 g95 컴파일하지만
설치과정에서 필요한 library가 자동으로 추가되어
오류를 막는 장점이 있다.
위와 같이 수정하지 않으면 오류가 생긴다.
③ Compile 한다.
(참고로 compile 중에 에러가 날 경우 make clean 후 다시 make parallel 한다.)
(] make clean)
] make parallel
④ .bashrc 에 환경변수 추가
PATH=$PATH:/home/xxxx/amber9:/home/xxxx/amber9/exe
AMBERHOME=/home/xxxx/amber9
다시 로그인한 후 다음과 같이 확인해본다.
] which sander.MPI
(결과는 /home/xxxx/amber9/exe/sander.MPI )
⑤ test 해본다.
] export DO_PARALLEL=’mpiexec -n 2′
(openmpi-default-hostfile 에 등록된 노드와 cpu 수가 두개 이상이어야 한다.)
(여건이 되면 -n 4 나 그 이상을 해도 좋다.)
] cd ..
] cd test
] make test.parallel
⑥ 개개의 병렬 테스트가 PASSED 로 끝나고 POSSIBLE FAILURE 에 관해서는
생성된 TEST_failure.diff 를 열어 reference 값과 실제 test 값의 차이를
일일이 확인하여 차이가 작으면 합격이라고 볼 수 있다.
* PMEMD 설치
(Particle Mesh Ewald MD)
설치 요구사항
– g95 컴파일러 설치.
– open mpi 설치(g95로 컴파일)
– amber9 parallel 로 설치(g95)
① $AMBERHOME/src/pmemd/config_data/ 디렉토리에 아래 내용과 같은 파일을 athlon.g95.openmpi 라고 저장
————————–athlon.g95.openmpi——————————-
DIRFRC_DEFINES = -DDIRFRC_COMTRANS -DDIRFRC_EFS
MPI_DEFINES = -DMPI
MPI_INCLUDE = -I/home/common/openmpi/include
MPI_LIBS = -L/home/common/openmpi/lib -lmpi_f90 -lmpi -lorte -lopal -ldl -Wl
CPP = /lib/cpp
CPPFLAGS = -traditional -P
F90_DEFINES = -DFFTLOADBAL_2PROC
F90 = mpif90
MODULE_SUFFIX = mod
F90FLAGS = -c
F90_OPT_DBG = -g
F90_OPT_LO =
F90_OPT_MED =
F90_OPT_HI = -O3 -fno-second-underscore
F90_OPT_DFLT = $(F90_OPT_HI)
CC = gcc
CFLAGS = -O3
LOAD = mpif90
LOADFLAGS = -I/home/common/openmpi/include
LOADLIBS = -L/home/common/openmpi/lib -lmpi_f90 -lmpi -lorte -lopal -ldl -Wl
—————————————————————————
② $AMBERHOME/src/pmemd/에서 아래와 같이 빌드한다.
] ./configure athlon g95 openmpi
③ 컴파일 한다.
] make
] make install