티스토리 뷰

  1. 여기에서는 MPICH2를 기본으로 설명을 하며,
    이탤릭체로 되어 있는 것은 각자의 시스템에 따라 달라질 수 있는 이름입니다.
     
  2. 클러스터 시스템에서의 사용자 계정 생성 및 설정 방법은 다음 글을 참조하세요.
    - 클러스터 시스템에서의 사용자 관리 : http://www.dhkim.info/238
    특히, 위 글의 "3. 노드간 무인증 접속 설정"을 제대로 해 주어야 합니다.
    노드간 무인증 접속은 ssh와 rsh의 2가지 방법이 있는데, MPI에서는 기본으로 ssh를 지원하며, rsh를 사용할 경우는 옵션으로 지정이 가능합니다.
     
  3. 다음은 mpdboot를 위한 설정을 해 주어야 하는데 우선은 ".mpd.conf" 화일을 생성해 줍니다.
    %cd ~; echo MPD_SECRETWORD=hostname > .mpd.conf; chmod 600 .mpd.conf
    .mpd.conf는 user만이 읽고 쓰기 권한을 가져야 합니다.
  4. 노드들의 정보를 담은 mpd.hosts 화일을 생성해야 하는데 4코아 2CPU의 4노드 시스템이라면,
    전체 32 CPUs로써 다음과 같이 편집하여 화일을 생성합니다.
    [mpd.hosts의 내용]
    hostname0
    hostname1
    hostname2
    hostname3
     
  5. 자, 이제 mpdboot를 이용하여 노드 4개를 boot 시켜 봅니다.
    %mpdboot -n 4 -f mpd.hosts
    "-n 4"는 사용할 노드의 갯수를 적으면 되고, 코아 단위의 CPU 갯수를 지정할 경우에는
    "-ncpus=n"으로 설정하면 됨
     
  6. mpdtrace로 제대로 boot 되었는지 확인해 봅니다.
    %mpdtrace -l
    hostname0_????? (192.168.1.??)
    hostname1_????? (192.168.1.??)
    hostname2_????? (192.168.1.??)
    hostname3_????? (192.168.1.??)
    위와같은 메세지가 나오면 성공입니다. (hostname 옆의 ?????는 숫자들이며, IP 주소도 시스템에 따라 달라짐)
     
  7. 간단하게 MPI가 제대로 구동되는지 확인하기 위해서 다음을 실행해 봅니다.
    %mpiexec -n 32 hostname
    hostname0
    hostname1
    ......
    무작위 순서로 배정된 hostname이 모두 32개가 표시됨.
     
  8. 특정 노드에 프로그램을 실행을 시키고 싶다면 mpiexec의 -machinefile 옵션을 사용해야 합니다.
    예를 들어, hostname1과 hostname2에 각각 4개의 프로세서를 할당하고 싶다면, 다음과 같은 내용으로 mpd.machine라는 화일을 생성합니다.
    hostname1:4
    hostname2:4
    그리고 이 화일을 이용하여 다음과 같이 실행합니다.
    % mpiexec -machinefile mpd.machine -np 8 <your_job>
     
  9. mpdboot를 clear하려면,
    % mpdallexit
    Good luck !