본문 바로가기
IT 유용한 TIP

리눅스 클러스터링-Clustering 구축기 03 - 설치 방법

by 이혁진 2018. 3. 26.

돈도 없고, 시간도 없음으로.....업습체로...

정리하여 POST 남겨봅니당...

0. 환경

 - Ubuntu 16.04.4 LTS 32bit Server 

 - Python 3 이상 

 - MPICH &  mpi4py 설치 

1. aptitude를 통해 mpich 먼저 설치하고 / pip3를 통해 mpi4py를 설치

 - 각 머신에 다 설치 해야 함 

 - 각 머신에 계정명하고 암호를 동일하게 하는게 편함 

 - 나의 경우는.....한대 세팅하고.......이미지 떠서, Clone 처리 하였음당....


 - pip3 설치....스크립트 

  $ apt-get install libopenmpi-dev python3-pip

  $ pip3 install mpi4py

2. 각 머신 Hostname & IP 변경 세팅 

 - 아래 그림 구성 참고 바람.......


 

  

 - hostname 변경

  . $ sudo vi /etc/hostname  

  . $ sudo vi /etc/hosts 


    


 - IP 변경 

  . $ sudo vi /etc/network/interfaces 


# The primary network interface

#auto enp1s0

#iface enp1s0 inet dhcp

# 기존 DHCP 모드를 # 로 주석 처리 


# 아래 내용 추가 

auto enp1s0

iface enp1s0 inet static

address 192.168.1.101

netmask 255.255.255.0

gateway 192.168.1.1

dns-nameservers 8.8.8.8

3. SSH 통신 키 교환 

 MASTER 머신에서 SLAVE 머신에게 일을 시킬려면......

 통신이 되어야 겠지...

 그럴려면....MASTER - SLAVE 간 키가 공유되어야 함.....

  - MASTER 머신 e01 에 원격 접속

$ssh-keygen

$cd ~

$cd .ssh

$cp id_rsa.pub e01


  - SLAVE 머신 e0? 에 원격 접속 (n번째 SLAVE 머신를 e0?로 표기함)

$ ssh-keygen

$ cd .ssh

$ cp id_rsa.pub e0?

$ scp  SLAVE 머신 eI01의 IP:/home/작업계정/.ssh/e01 .

$ cat e01 >> authorized_keys

$ exit


  - MASTER 머신 e01 에서 나머지 모든 SLAVE를 수용하는 작업

$ scp e0?의 IP:/home/작업계정/.ssh/e0? .

$ cat e0? >> authorized_keys

  - MASTER 머신에 SLAVE 머신 정보 세팅 

    $ cd ~

$ vi machinefile 

192.168.1.102

192.168.1.103

192.168.1.104

  

  - 클러스터 연결상태 테스트 (MASTER 머신에서....실행....) 

$ mpiexec --hostfile ~/machinefile -n 4 hostname 

machinefile 의 hostname와 CPU코어수에 따라 hostname 출력 됨

        -n 4 의 숫자를 적절히 변경하면 됨 


       

4. 마스터 머신 잔 세팅  

 - /etc/hosts  파일에 SLAVE 호스트이름 다 입력....

 - 혹시 몰라서....걍 해봤음.......


 - 아래 그림처럼 실행하고자 하는 프로그램 파일이 각 머신에 다 있어야 함....

   따라서......scp 스크립트 파일 생성......



  $ cd ~ 

  $ mkdir test-pg 

  $ vi sysfile.bat


    scp -r /home/작업계정명/test-pg/* 각Slave의 e02:/home/작업계정명/test-pg/ 

    scp -r /home/작업계정명/test-pg/* 각Slave의 IP:/home/작업계정명/test-pg/ 


  이렇게 해 놓고.....

   test-pg 폴더에 실행파일을 몰어 넣으면 됨 ...  

5. TESTING 프로그램 작성 

 - 요것은 다음 POST에....자세하게.............쿨럭;;;;

 - 간단하게는...


  $ cd ~ 

  $ vi test.py 


  import time


print (time.ctime())

a = 0 


for i in range(1,1000000000):

a = a + i


print (a)

print (time.ctime())


time.ctime()


 $ scp -r test.py 슬레이브 IP :/home/작업계정/ 

 $ mpiexec.mpich --hostfile machinefile -n 4 python3 test.py 


 - 이렇게 하면 똑같은 작업은 4개의 병렬코아에......4번씩 실행....(쿨럭;;;;;;) 


 - 느낌적인 느낌으로 MPICH를 통해서 TensorFlow 돌리는건.....안 될 듯 . ㅜㅜ