'MPI' 태그가 지정된 글

ssh for mpi

여러 대의 컴퓨터를 연결하여 mpi를 실행하기 위해서는 ssh node02 또는 rsh node02 와 같이 실행하여 비밀번호 입력 없이 다른 노드에 접속할 수 있어야 합니다. 여기에서는 ssh를 이용하는 방법을 알아보겠습니다.

node01(mpi를 실행하는 main node)과 node02 두 개의 node가 있다고 생각해보죠.

node01에서

$ssh-keygen –t rsa

명령을 실행하고, 저장 장소를 default로 하여 enter를 치면 인증키 암호를 물어봅니다. 인증키 암호를 두 번 입력합니다(passwd와는 다릅니다). 그럼 ~/.ssh (default directory)에 id_rsa.pub 라는 파일이 생성됩니다.

$ scp  ~/.ssh/id_rsa.pub  user@node02:/home/user/.ssh/autorizd_keys

라고 복사를 한 후 node02에서

$ chmod  755  ~/.ssh

$ chmod  644  ~/.ssh/autorized_keys

라고 permission을 조정해줍니다.

이렇게 하면 node01에서 node02에 접속할 때 passwd가 아닌, 인증키 암호로 접속할 수 있게 됩니다. mpi를 위해, 인증키 암호도 안 쓰고 접속하려면 인증키를 메모리에 상주시키면 됩니다. node01에서

$ eval $(ssh-agent)

를 실행하면 Agend pid ~~ 라고 나오는데,

$ ssh-add

를 실행하면 비밀번호 입력 없이 node02에 접속할 수 있습니다.

$ ssh node02

 

 

* 참고 문서 (GNU free document licence 1.1 이상)

http://wiki.kldp.org/wiki.php/DocbookSgml/SSH-KLDP

Excluding nodes from qsub command

qsub 로 job 올릴 때 특정 node 빼고 돌리는 법

#!/bin/sh
#$ -cwd
#$ -V
#$ -v MPIHOME={mpi home}
#$ -N {job name}
#$ -S /bin/sh
#$ -pe mpich 20
#$ -A teragonhpc
#$ -j y
#$ -o log.out
#$ -q *@node*&!*04&!*01&!*12

$MPIHOME/bin/mpirun -np $NSLOTS -machinefile $TMPDIR/machines 실행파일

위의 내용은 qsub로 job을 올릴 때 사용하는 script.sh 파일 내용입니다. #$ 마지막 줄에 있는 -q 명령이 node 지정해주는 명령입니다. 위의 명령을 해석해보겠습니다.

1. &는 fortran의 .and. 연산자와 같은 역할을 합니다.
2. *@node* 은 모든 node를 사용하라는 명령입니다.
3. !은 .not. 즉, 부정을 의미합니다.
4. 따라서 !*04 는 04로 끝나는 node는 사용하지 말라는 의미입니다. 마찬가지로 !*01, !*12도 01번과 12번 node를 사용하지 말라는 의미입니다.

정리하면 -q *@node*&!*04&!*01&!*12 옵션을 붙여주면, 01번, 04번, 12번 node를 제외한 나머지 node만 사용해서 mpi를 돌리게 됩니다.



팔로우

모든 새 글을 수신함으로 전달 받으세요.

다른 39명의 팔로워와 함께 하세요