MPICH2 클러스터링 설정하기


MPICH2 공식사이트 가기


다음 내용은 우분투 사이트에 있는 문서를 참조해서 정리한 내용이다.

헤드노드는 다음 패키지를 추가한다.
nfs-kernel-server
build-essential

간단한 구축 과정은 다음과 같다.

모든 노드에 우분투 서버를 설치하고 최신 패키지로 업데이트 한다.
다음 패키지를 추가로 설치한다.
nfs-kernel-server
build-essential

모든 노드에 /etc/hosts 파일에 노드를 등록한다.
ex)
192.168.133.100 ub0 <- 헤드노드
192.168.133.101 ub1
192.168.133.102 ub2
192.168.133.103 ub3

헤드 노드에서 다음과 같이 작업한다.
1. NFS로 공유할 디렉터리를 생성한다.
# mkdir /mirror

2. 공용으로 사용할 사용자 계정을 생성한다.
# adduser --home /mirror/mpiu --uid 1001 mpiu

3. mpiu 계정에 SSH 접속시 암호를 묻지 않도록 하기 위하여 키를 생성한다.
$ ssh-keygen -t rsa
$ cat id_rsa.pub >> authorized_keys

RHEL을 사용할 경우 공개키를 다음과 같이 접속하고자 하는 서버에 복사할 수 있다.
$ ssh-copy-id -i ~/.ssh/id_rsa.pub 서버

4. NFS 서버를 설정한다.
/etc/exportfs 파일에 /mirror 디렉터리를 추가한다.
/mirror *(rw,sync)

5. MPICH2 를 소스로 받아서 설치한다.
$ ./configure --prefix=/mirror/mpich2
$ make
$ sudo make install


mpiu 계정을 다음과 같이 설정한다.

1. .bashrc 파일에 다음을 추가한다.
export PATH=/mirror/mpich2/bin:$PATH
export LD_LIBRARY_PATH=/mirror/mpich2/lib:$LD_LIBRARY_PATH

2. mpd.hosts 파일을 생성하고 노드를 등록한다
ub3
ub2
ub1
ub0

3. .mpd.conf 파일 생성
$ echo secretword=something >> ~/.mpd.conf
$ chmod 600 .mpd.conf


헤드노드를 제외한 노드에서 다음과 같이 설정한다.
1. mpiu 계정을 똑같이 생성한다.
2. 헤드노드의 /mirror 를 마운트한다.
/etc/fstab 에 다음을 추가한다.
ub0:/mirror /mirror nfs rsize=8192,wsize=8192,timeo=14,intr 0 0



MPICH2 설치 확인

$ mpd &
mpd 데몬을 띄우고 mpdtrace 명령을 실행했을 때 호스트 이름이 출력되는 정상이다.
각 노드에서 전부 확인한다.

확인후 mpdallexit 명령을 사용하여 데몬을 중지한다.


MPICH2 모든 데몬 실행하기
$ mpdboot -n 4

-n은 노드수를 지정한다.
데몬을 실행 후 mpdtrace 명령어로 모든 노드가 출력되면 정상이다.



MPICH2 예제 실행해 보기
소스의 examples 디렉터리에 있는 예제 프로그램 cpi 를 실행해본다.
$ mpiexec -n 4 cpi

각 노드 수 별로 결과값을 비교해본다.













댓글

이 블로그의 인기 게시물

pidstat 명령어 프로세스 부하 보기

리눅스 채널 본딩 설정하기