[클러스터] mpich 1.2.x 대에서 SMP 환경과 DMP 환경 모두 사용하기
rsh나 ssh를 통해서 mpich가 실행되는 모드는 mpich 중에서 p4라는 네트웍
디바이스를 사용하도록 컴파일 되었기 때문입니다. 이럴때는 SMP머신이라도
시피유간의 통신은 tcp socket을 사용하게 되므로 성능이 저하됩니다.
따라서 컴파일하실때, 다음과 같이 하면 rsh를 사용하지 않습니다.
./configure –device=ch_shmem 어쩌고 저쩌고…
ch_shmem을 사용하시도록 하면됩니다. –device옵션을 주지 않으면 기본은
ch_p4입니다.
그런데, ch_shmem으로 컴파일하게 되면 다음에 다른 기계를 하나 더 연결
해도 프로그램을 돌리기가 힙듭니다. 그래서 가능하면 다음과 같이 컴파일하고
rsh을 open해두시기를 권합니다.
./configure –device=ch_p4 -comm=shared 어쩌고 저쩌고…
–device=ch_p4 -comm=shared 라고 해두면, SMP내부에서는 shared
memory로 통신(쉽게 말해 메모리 카피)을 하고, 기계간에는 네트웍을 사용
하게 됩니다.
그리고, rsh를 사용하는 가장 쉬운방법은 /etc/hosts.equive 안에 호스트네임
을 한줄 넣으면 됩니다. 이것 뿐이죠.
본 방식으로 구성할 경우 distribute machine 환경에서 -machinefile을 사용하여 mpirun 할 경우 정상적인 통신이 안되는 문제 발견