[질문] mpich2를 사용하려 하는데 cpu 인식을 제대로 못하는 것 같습니다.
mpich2를 사용하여 병렬 계산을 하려하는 리눅스 초보자입니다.
그런데 제가 인스톨할 때 잘못했는지, 특정한 과정을 빼먹었는지
mpiexec를 실행하면 한 프로세서만 인식하는 것 같습니다.
제가 mpich2를 인스톨한 머신은 cpu 2개가 장착된 로그인 노드 1개, 계산용 노드 4개짜리 클러스터입니다.
로그인 노드는 계산에 사용하지 않습니다.
mpitrace의 결과는 아래와 같습니다.
[kyu99@cas01 4dvar]$ mpdtrace -l
cas01_39485 (193.168.100.31)
cas02_35456 (193.168.100.32)
cas03_38213 (193.168.100.33)
cas04_32920 (193.168.100.34)
mpitrace의 결과를 보면 계산용 노드 4개(8개의 cpu)를 제대로 ring에 추가시킨 것 같은데
특정 실행파일을 실행시켜보면 아래와 같은 결과를 표출합니다.
[kyu99@cas01 4dvar]$ mpiexec -n 2 da_wrfvar.exe : -n 4 ad/wrfplus.exe : -n 2 nl/wrf.exe
starting wrf task 0 of 1
starting wrf task 0 of 1
starting wrf task 0 of 1
starting wrf task 0 of 1
starting wrf task 0 of 1
starting wrf task 0 of 1
starting wrf task 0 of 1
starting wrf task 0 of 1
위의 결과를 보시면 mpd ring의 8개의 프로세서 중 하나만 인식하는 것 처럼 보입니다. 어떻게 해야 이 문제를
해결할 수 있을까요? 고수님들의 조언 부탁드립니다. 감사합니다.
이렇게 해보심이..
오래된 글이네요.
일단 님께서 사용하신 포맷으로 하면 실행되는게 정상이네요. 예를들면,
$ mpiexec -n 2 date : -n 4 hostname : -n 2 ls
하면 시간과 호스트네임 리스트가 주욱 나오게 됩니다.
$mpiexec -h 하고 눌러보니 사용법이 이렇게 나오네요.
mpiexec -n 1 -host foo master : -n 4 -host mysmp slave
혹시 모르니 mpiexec 메뉴얼에 나온것처럼 이런식으로도 한번 해보심이?
$ mpiexec -n 2 -host cas_38945 da_wrfvar.exe : -n 4 -host cas_35456 ad/wrfplus.exe : -n 2 -host 38213 nl/wrf.exe
각 명령단락에 -host 라는 옵션으로 실행할 호스트네임을 직접 넣어준 것입니다.
제가하면 잘 돌아가네요.
아마도 첫번째 호스트에서만 8개를 다 실행하는 폼새로 보아 나머지 두개 명령들은 파일을 못찾았다든지 아니면 명령어 구문에서 문제가 있다든지 할 것인데...에러메시지 있으면 올려보세요.
댓글 달기