돈도 없고, 시간도 없음으로.....당연업습체로...
구축기를 남겨봅니당...
나의 구축 환경은...아래와 같슴......
1. 범용적인 리눅스 배포판 - ubuntu 17.10 - 뭐가 달라 졌는지도 볼겸...
2. python이 돌아야 한다......
3. H/W는 8G SSD에 1G RAM, 인텔 아톰 D2550 1.86GHz .
4. 클러스터링은 MPICH를 통해 구현
삽질 1. Ubuntu 17.10
썩을...
/etc/network/interfaces 파일 수정을 통해.....
IP변경이 안된다......(모지????)
Ubuntu 17.10 를 한 4번이나 다시 깔아 봤당.....(쿨럭..;;;;;;)
나는야 포기가 빠른 사나이로........
Ubuntu 16.04.4 LTS 32bit Server 버전으로......변경
삽질 2. MPICH & mpi4py 컴파일
리눅스 클러스터링이, 라즈베리파이 등의 오픈 H/W로 인해,
웹에서 그 구현을 쉽게 찾아 볼수 있었다.....
뭐 이런데.....
https://www.southampton.ac.uk/~sjc/raspberrypi/pi_supercomputer_southampton.htm
http://datamining.dongguk.ac.kr/wiki/index.php/Openmpi
(PDF 파일이라 링크 걸기가 애매한데, 구글에서 'Software Carpentry_ $100 달러 오픈 슈퍼 컴퓨터.pdf'로 검색하면 좋은 문서가 하나 나온다.)
대부분 소스를 다운 받아서 머신에서 직접 컴파일하는 예제 들이다.....
wget http://www.mpich.org/static/downloads/3.1/mpich-3.1.tar.gz
=> MPICH 소스
wget https://bitbucket.org/mpi4py/mpi4py/downloads/mpi4py-3.0.0.tar.gz
=> MPICH & Python 연동하는 소스
그러나,
직접 컴파일 해본 결과
MPICH 소스 부분에서 Warring 메시지가 뜨면서 컴파일이 되는게 조금 불안불안......
컴파일결과인 실행 파일은 작동은 되는데...... 조금 불안불안......
어떻게 할까하다가.......
aptitude를 찾아보니......
썩을....이미 패키지화 되어 있다.....
(아......가뜩이나..안좋은 CPU 가지고 컴파일 하느냐 고생한 내 시간......;;;;; )
관련 라이브러리가 알아서 설치되고....용량도 얼마 안된다....
삽질 2-1. aptitude를 통한 mpi4py 설치
위에 처럼..
mpich 먼저 설치하시고....
python3-mpi4py 를 설치하면....끝......날줄 았았으나......
python3-mpi4py 가 정상적으로 돌지 않는 듯 하다......
즉, "from mpi4py import MPI"처럼 라이브러리를 호출 하려고 하면.....에러...;;;
< 왜 있는데......돌질 않니...;;;; >
구글링 결과....
파이선 pip로 별도 mpi4py 라이브러를 설치하는게 ....... 맞음....
mpich 먼저 설치하시고....
파이선 pip로 별도 mpi4py 라이브러를 설치.....
각 머신 Hostname & IP 변경 세팅 하고......
전체적은 개념은....
MASTER 머신에서.....각 Slave 머신에게 일을 시키는 구조......
잔 세팅 한두개 하고.....
마스터 - 슬레이브 간 SSH 키 설정만 해주면 끝.....
자세한 방법은 생략......하려다....
내가 까먹을 것 같아서.....(쿨럭 ;;;;;)
다음 POST에.......
삽질 3. TEST용 프로그램 제작
병렬/분산처리가 되도록 프로그램은 새로 짜야 된다.
아래와 같은 일반 프로그램....을 돌리면.....(파이썬 코드임당...)
import time
print (time.ctime())
a = 0
for i in range(1,1000000000):
a = a + i
print (a)
print (time.ctime())
time.ctime()
병렬로.........수행 된다......
(분산처리가 그냥 안되네......그냥 4번 수행 된다....)
(생각해보니.......그냥 분산처리가 될줄 알았던 내가 바보임....;;;;;)
분산처리를 위해서......
C언어는 mpi.h / python은 from mpi4py import MPI 를 참조하여
분산처리를 위한 프로그램을 짜야 한다능......
mpich-3.1.tar.gz 파일에...예제가 있는데...
뭐......
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
MPI_Get_processor_name(processor_name,&namelen);
MPI_ 으로 시작하는 라이브러를 공부해서....짜야 한다능........(털썩....;;;;)
C는 개발해본지가 수십년 전이라......
python이라도 분산처리 할수 있는 예제에 대해서 조금 보고....
나중에 포스팅 하겠습니다.........;;;;
이상입니다.
'IT 유용한 TIP' 카테고리의 다른 글
노트북 업그레이드 레노버 ThinkPad e330 - CPU 선정 - 01 (0) | 2018.04.27 |
---|---|
저작권 Free 이미지 - pixabay.com (0) | 2018.04.23 |
블로그 무료 이모티콘 (디셉님의 어밴드) - 티스토리 (0) | 2018.04.20 |
LG전자 울트라PC 15UD560류.....M.2 SSD 교체기 (0) | 2018.03.31 |
리눅스 클러스터링-Clustering 구축기 03 - 설치 방법 (0) | 2018.03.26 |
리눅스 클러스터링-Clustering 구축기 01 (0) | 2018.03.12 |
[리뷰] LG전자 34UM59 모니터 3개월 사용기 - 21:9 모니터 사용기 (0) | 2018.03.05 |
[윈도우] 윈도우7 USB 부팅디스크 만들기 (0) | 2015.12.18 |
노트북, PC로 무선공유기 만들기 (0) | 2015.07.06 |
KISA에서 제공하는 주민번호 유출 및 이용 현황 보기 (0) | 2015.06.24 |