MPICH2 GCC 버전을 설치해보자.
버전은 MPICH2 1.4 이다.
설치할 위치는 /engrid/enhpc 디렉토리 아래이다.
그리고 /engrid/enhpc 디렉토리는 작업을 수행할 노드에 모두 NFS 마운트를 해놓은 상태이다.
다운 받은 mpich2-1.4.tar.gz 을 /engrid/enhpc 디렉토리 아래에 압축을 푼다.
cd /engrid/enhpc;
tar xvfz mpich2-1.4.tar.gz;
압축을 풀고 mpich2-1.4 디렉토리에 gcc 디렉토리를 생성한다.
다음엔 intel 버전으로 컴파일 할 것이기 때문에 gcc 버전과 분리하기 위해 gcc 디렉토리를 만들어 컴파일한다.
# export FC=gfortran# export F77=gfortran# export CC=gcc# export CXX=g++# ./configure --prefix=/engrid/enhpc/mpich2-1.4/gcc --enable-timing=runtime --enable-f77 --enable-fc --enable-cxx --enable-romio --enable-threads=multiple --enable-mpe --with-thread-package=pthreads --with-pm=mpd# make# make install
위와 같이 컴파일 하여 설치한다.
컴파일 후 mpdboot를 실행하기 위해 mpd.conf 파일과 mpd.hosts 파일을 설정해야 한다.
mpd.conf 파일에는 MPD_SECRETWORD 를 설정해줘야 한다. MPD_SECRETWORD는 아무거나 설정해도 상관없지만 작업을 수행할 모든 노드에 동일하게 설정되어 있어야 한다.
# vi ~/.mpd.confMPD_SECRETWORD=password
# chmod 600 ~/.mpd.conf
# chown root. ~/.mpd.conf
mpd.conf 파일의 권한은 작업을 수행할 소유자 권한으로 설정되어 있어야 한다.
작업을 수행할 노드를 mpd.hosts 파일에 다음과 같은 형식으로 설정해준다.
hostname:n
hostname은 작업을 수행할 노드 호스트 이름이고, n은 노드의 코어 수를 나타낸다.
예를 들어, clunix151 노드와 cluni152 노드에서 각 4 코어를 사용하겠다고 한다면 다음과 같이 설정해준다.
# vi /etc/mpd.hosts
clunix151:4
clunix152:4
작업을 수행할 노드는 설정을 했으니, mpdboot를 실행하자.
# /engrid/enhpc/mpich2-1.4/gcc/bin/mpdboot -r /usr/bin/ssh -n 2 -v -d -f /etc/mpd.hosts
mpdboot가 실행된 노드를 확인하는 명령은 아래의 mpdtrace 이다.
# /engrid/enhpc/mpich2-1.4/gcc/bin/mpdtrace
clunix151
clunix152
mpich2 예제 프로그램 cpi를 수행해보자.
# cd /engrid/enhpc/mpich2-1.4/examples
# /engrid/enhpc/mpich2-1.4/gcc/bin/mpirun -l -n 5 ./cpi
참고로 mpi를 수행할 때 원하는 노드로만 수행할 수 있는 "-machinefile <노드리스트파일>"옵션도 있다.
이 옵션을 설정하지 않으면 위에서 mpdboot 실행할 때 옵션에 설정한 mpd.hosts 노드 중에서 랜덤하게 수행되지만,
이 옵션을 설정하면 이 옵션에 설정된 노드에서만 수행하도록 한다.
다른 작업과 중복되지 않게 노드를 사용하고 싶을 때 사용할 수 있는 옵션이다.
예를 들어, clunix151 노드에서만 작업을 수행하고 싶을 경우, nodelist 파일에 clunix151을 저장후 다음과 같이 명령을 준다.
# gcc/bin/mpirun -np 6 -machinefile nodelist examples/basic/cpi;
모든 노드의 mpdboot 를 clear 하고 싶다면 다음 명령을 수행한다.
# mpdallexit
'Linux' 카테고리의 다른 글
Iptables 포트제한 (0) | 2012.12.08 |
---|---|
리눅스 프로세스 상태 보기(ps명령) (0) | 2012.11.19 |
yum으로 tomcat 인스톨후 초기화 방법 (0) | 2012.11.13 |
ubuntu kde 에 한글입력 올리기 (0) | 2012.11.11 |
리눅스 chrome root 로 실행 (0) | 2012.11.10 |