>> Read No. 1700 article  
간단하게 만들어 보는 cluster...

등록 2001-09-28 02:53:00     조회 6
이름 rainy    

		혹.. 필요하신 분 있으시다면.. emoticon.. 참고하세요.
--------------------------------------------------------
Beowulf-Class Cluster 구성기
 1. 시작
2. 설치
3. 이용
4. 끝으로...
 이 문서는 http://rainy.sarang.net/docs/cluster.txt 에서
최신버젼을 얻으실수 있습니다.
 1. 시작
parallel computing... 개념은 간단하지만 구현은 복잡하다.
개념 - 작업을 parallel 하게 연결된 system 들에게 분산시켜 수행한뒤 결과를 얻는다
이점 - 수학적 문제나 과학적 계산에서 탁월한 성능을 보인다
 참고 도서 : Parallel computing : theory and practice / Michael J. Quinn. / McGraw-Hill
 2. 설치
동방에 띵굴띵굴 놀고 있는 컴퓨터를 연결해보자는 생각해서 시작하였다. emoticon
그래서 기존에 쓰여진 글들에서 보이던 설정들과는 약간 다르게 적혀진다.
가정하길 동방에서 돌고 있는 컴퓨터들은 모두 개별컴퓨터가 인터넷에 연결되어 있는 상
황이고 관리자에게 말하여 겨우 rsh 만 열여달라고 하였다. emoticon
rsh 에 의한 보안문제는 ipchains 으로 다른곳에서 들어오는 패킷들은 막아두는걸로 하였다.
 1) parallel computing 에 연결될 컴퓨터들을 생각해보고 각각 이름을 붙인다
 2) rsh 로 각 컴퓨터들이 연결 가능하게 설정을 해둔다
 [rainy@sscc rainy]$ rsh sscc0 "pwd"
/home/rainy
[rainy@sscc rainy]$ rsh sscc1 "pwd"
/home/rainy
 3) parallel computing 에 필요한 라이브러리를 선택한다. (여기선 LAM / MPI 를 선택하였다)
http://www.lam-mpi.org/ 에서 LAM을 구할수 있다
rpm을 구할수 있다면 더 편리하게 깔수 있다. 여기서는 rpm을 선택하였다.
http://www.lam-mpi.org/download/files/lam-6.5.4-tcp.1.i386.rpm  4) LAM 을 구동시키면 설치가 끝난다
lamhost 파일은 병렬 컴퓨팅으로 연결할 컴퓨터 들을 적어준다.
 [rainy@sscc rainy]$ cat lamhost
sscc0
sscc1 <- sscc1 의 경우 SMP 시스템이라 2개를 적어주었다
sscc1
[rainy@sscc rainy]$ lamboot -v lamhost
 LAM 6.5.4/MPI 2 C++/ROMIO - University of Notre Dame
 Executing hboot on n0 (sscc0 - 1 CPU)...
Executing hboot on n1 (sscc1 - 2 CPUs)...
topology done     
[rainy@sscc rainy]$
 이 상태가 parallel computing 을 하기 위한 상태가 구축된것이다.
 3. 이용
1) 예제 프로그램을 만들어 돌려본다
 #include <stdio.h>
#include <mpi.h>
#include <math.h>
 #define N 6000000000
 main(int argc, char** argv)
{
        int i,node,numtask,iroot;
        double sum, sumt, subN;
         MPI_Init(&argc,&argv);
        MPI_Comm_rank(MPI_COMM_WORLD,&node);
        MPI_Comm_size(MPI_COMM_WORLD,&numtask);
         subN = N/numtask;
         sum = emoticon;
        sumt = emoticon;
        iroot = 0;
         for (i = 0; i < subN; i++) sum = sum + (float)(i + 1 + node*subN);
         MPI_Reduce(∑,&sumt,1,MPI_DOUBLE,MPI_SUM,iroot,
                MPI_COMM_WORLD);
         if (node == iroot) printf("total sum = %f",sumt);
        MPI_Finalize();
         exit(0);
}
 이 프로그램은 1-600000000 (6억) 까지의 합을 계산하는 것이다.
체크에 이용된 시스템은 Dual 펜2-400 CPU 컴(sscc1), 펜3-500 CPU 컴(sscc0)
[rainy@sscc /tmp]$ mpicc -o sum1k sum2.c -lm
프로세서 하나의 이용(펜2-400 CPU 컴의 cpu1번)
[rainy@sscc /tmp]$ time mpirun -np 1 ./sum1k
total sum = 180000000300000000.000000
 real    0m37.885s
user    0m0.000s
sys     0m0.010s
 프로세서 두개의 이용(펜2-400 CPU 컴의 cpu1,2번)
[rainy@sscc /tmp]$ time mpirun -np 2 ./sum1k
total sum = 180000000300000000.000000
 real    0m19.233s
user    0m0.010s
sys     0m0.010s
 프로세서 세개의 이용(sscc1 + sscc0)
[rainy@sscc /tmp]$ time mpirun -np 3 ./sum1k
total sum = 180000000300000000.000000
 real    0m13.001s
user    0m0.000s
sys     0m0.010s
 이 때 주의할 점은 sum1k 라는 실행파일이 각 컴퓨터의 같은 디렉토리에 존재하여야 한다.
만약 NFS로 공유디렉토리를 설정하였다면 그 디렉토리 안에서 실행하면 된다.
 서로 다른 시스템의 혼합에서는 performance 측면에서는 어느정도 고려해야할 점이 많지만
load balancing 측면은 이 프로그램에서는 고려하지 않는다 emoticon
(오직 test 프로그램이다 emoticon)
 4. 끝으로...
parallel computing 을 위한 환경 구성은 그리 어렵지 않은 편이다.
약간의 Linux 지식만 있다면 구성은 할수 있다.
문제는 이 환경에서 돌아가는 프로그램을 만드는 일이다.
기존의 프로그램을 parallel 환경에서 돌아갈수 있도록 재포팅 하는 작업이 필요할것이다.
프로그램에 도움이 될 만한 책이다. (알고리즘)
 참고도서 : Parallel Programming / Barry Wilkinson, Michael Allen / Prentice Hall
 --
삽질삽질삽질 emoticon
이름
암호
  목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.89 초 ] 작업시간: [ 0.02 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791076278
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.