앞선 Bio::Blog #19에 대한 비누인형님의 글에서와 같이

"(중략) 이러한 Emergent 한 특징은 그 자체로는 우아하기 그지없지만, Engineering 이라는 목적에 있어서는 어마어마한 장애물로 나타나게 된다. 분명 각 부속품들의 동작은 이해하고 있지만, 그것들을 모아두었을 때 어떻게 움직이게 될 것인지는 알 방법이 묘연하기 때문이다.(중략) 이러한 어마어마한 장애물을 풀어헤치는데 있어서 중요한 것이 바로 simple, abstraction...(<-나름 요약)"

순전히 개인적인 생각이지만,, 이러한 것을 가능하게 하기 위한 요소중 가장 기본적인것인 바로 엄청난 컴퓨팅 파워라고 생각한다.(기본적인 것 중의 하나라고 했을뿐 꼭 필요한 요소나 뭐 가장 중요한 요소라고 안했습니다. ^^;;)

그럼 이러한 엄청난 컴퓨팅 파워는 어떻게 얻을 수 있을까? 바로 scalability가 대답이 될 수 있겠다. 하나의 문제를 해결하는데 T라는 시간이 소요된다면 N개의 문제를 처리하는데 시간은 얼마나 걸릴까?? 문제가 증가됨에 따라 컴퓨팅 자원을 증가시켜 가능한 T에 가깝게 시간을 가져가는 것이 바로 scalability의 목표가 될 수 있다. 수직적(서버의 컴퓨팅 자원을 증가시키는것,, 메모리 및 CPU의 추가) 및 수평적(서버의 수를 디따 늘리는것)확정을 모두 지원하는 선형적인 확장이 바로 컴퓨팅 파워를 얻는 방법이다.

일찍이 1967년 암달(Gene Amdahl) 박사님께서 "프로세스병렬화 한계가 반드시 존재한다는 것으로, 병렬처리가 불가능한 순차적인 부분이 있어 프로세스를 아무리 병렬화한다하더라도 더 이상 성능이 향상되지 않는 한계가 존재한다"라는 유명한 암달의 법칙을 내놓으셨다. 뭐 별로 지금의 이야기와는 상관없지만,,, 암튼,,,,

지금 꼭 꼬집어서 말씀드린다면 앞서서 말한것은 다 잊으시고,, 병렬프로그램을 만들어서 돌린다거나 하지는 않습니다. 워낙 데이터가 많다보니깐 serial한 프로그램을 여러 컴퓨터에 나뉘어져서 수행하고 있습니다. 물론 어떤 노드(컴퓨터)가 놀고 있는지,,, 그때 그때 놀고 있는 노드를 선별하고(Load Balancing), 한 노드가 작동 불능시 대처(High Availability)등을 고려해서 아무런 문제없이 여러대의 클러스터 노드들을 마치 하나의 컴퓨터처럼 사용할 수 있도록 하고 있습니다. 따라서 일반적으로 사용하는 plink, svm 등의 serial 프로그램들 되는대로 사용자들이 돌리고 싶은 것 이렇게도 돌려보고 저렇게도 돌려보고 있습니다. simple, abstraction을 위해?? ^^;; 그리고 서비스를 위해 blast가 돌고 있습니다. 병렬화된 mpiBlast도 고려해보고,, 뭐 이것저것 다양하게 쓰고 있습니다. 클러스터라고 해서 뭐 특별난건 없으니까요 ^^

저 개인적으로는 아이폰에 넣을 동영상을 인코딩하는데,,, 클러스터를 활용하는 엽기적인 행각을 실행에 옮기려고 다각도로 쳐다보는 중입니다. 이에 대한 상세한 결과는 나중에 따로 ㅎㅎ

linux cluster
참고로 28노드 클러스터가 일하는 모습입니다. 빨개질수로 힘들게 일하고 있다는 거죠 ^^


xpbs
이건 제출된 일(job)의 목록을 보여주고 있습니다.


Posted by hongiiv

2008/03/10 17:38 2008/03/10 17:38
, ,
Response
No Trackback , 5 Comments
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/334

아직은 쓸만한 클러스터시스템

performance
한반도기후예측, 신약후보물질탐색, 유전체서열비교에 나오는 데이터는 평균값이 아니라 제일 높은 성능을 낸 날을 선택하였다.

국립보건연구원의 94노드 클러스터의 성능(362Gflops)은 대략적으로 신약후보물질탐색 프로젝트와 같은 성능을 내고 있다. 네티즌들 250명의 참여가 국립보건연구원 클러스터의 성능과 비슷하다고 보면 될듯(??)

유전체서열비교에서 보듯 참여가 많으면 많을수록 성능이 올라가지만,, 우리의 클러스터는(94노드의 362Gflops로) 한계가 딱 정해져 있다는것!!! 물론 요번에 튜닝작업을 거쳐서 실제성능의 향상이 이루어졌다. 이는 튜닝 작업 전의 데이터를 기준으로 작성됨

전반적으로 아직까지는 Korea@Home에 프로젝트를 건의하는것보다는 그냥 우리 시스템으로 돌리는것이 더 빠를 수 있다는점,, ㅋㅋ 고로 아직 쓸만한 놈이다라는 이상한 결론,,,(^______^)

Posted by hongiiv

2008/03/06 14:03 2008/03/06 14:03
, , , ,
Response
No Trackback , 4 Comments
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/332

마우이 고성능 컴퓨팅 센터 인턴쉽

나름대로 메일의 Signature에 HPC System Administrator라고는 적었지만 아직은 많이 모자란다고 생각한다.

Rocks 메일링을 보던중 우연히 하와이에 있는 Maui High Performance Computing Center에서 올 여름 인턴을 뽑는다는 글을 보았다. 한번 지원해 볼까하는 생각이 들었다. 하지만 여기서의 일을 그만두고 갈수도 없거니와 여러가지 상황에 그냥 바라보고만 있을 뿐이다. 좀더 젊고 먹고사는것에 대한 걱정이 없다면 좋으련만... ^^ 니가가라 하와이!!!

Posted by hongiiv

2007/03/02 15:39 2007/03/02 15:39
, , ,
Response
No Trackback , No Comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/164

들어가는글
리눅스를 접한것이 95년도 대학입학때부터다 한창 인터넷이라는 단어가 회자되던 시절로 넷스케이프, 알짜리눅스, 윈도우즈95의 세단어는 그시절을 떠올리게 부족함이 없다. 엑스윈도우 화면을 한번 보겠다는 일념하나로 리눅스와의 인연은 시작되고 어느덧 시간은 흘러 까맣게 잊고 있던 리눅스와의 인연이 다시 시작된건 리눅스를 이용한 클러스터와 함께 다시 시작되었다. 이제 그때와는 너무 많은 것들이 변화되었고, 단순한 호기심(?)이 아닌 이제 밥줄이 되어 버렸다.

병렬프로그래밍
현재 내가 몸담고 있는곳은 리눅스 클러스터를 기반으로 생물정보학을 연구하는 곳으로 18노드 Itanium2 클러스터를 부터 96노드 IBM PowerPC970 클러스터까지 다양한 클러스터를 갖추고 있다. 이러한 클러스터 시스템은 순차 프로그램을 여러 노드로 분산해서 실행할때 사용되기도 하지만, 진정한 클러스터의 사용한 병렬프로그램을 수행할때 그 진가가 발휘된다.

성능향상도(speed-up) S(n)
순차 프로그램에 대한 병렬 프로그램의 성능향상 정도를 성능향상도라고 하며, 이때 실행시간(elapsed time)은 wall clock time을 기준으로 한다. 실행시간이 24시간 소요되는 순차 프로그램에 대해서 병렬화를 수행하여 4개의 프로세서를 사용하여 8시간만에 그 결과를 얻을 경우 성능향상도는


User inserted image


User inserted image

Amdahl's Law
클러스터 컴퓨팅은 CPU 1개의 성능 한계를 해결하기 위해 출현한 아키텍처 중 최초로 탄생한 것이라고 할 만 하다. ‘클러스터를 찾아서(In Search of Clusters)’라는 책을 쓴 그렉 피스터(Greg Pfister)에 의하면, 클러스터라는 개념을 만들어낸 것은, 1개의 CPU 성능으로는 만족할 수 없었던 불특정 고객들이며, 그 개념은 1960년부터 있던 것이라고 한다. 최초로 클러스터링의 이론적 기초를 닦은 사람은 IBM의 암달(Gene Amdahl) 박사였다. 암달 박사가 1967년에 발표한 암달의 법칙(Amdahl’s law)에서 병렬 컴퓨팅에 대한 기초가 마련되면서, SMP와 함께 클러스터링의 이론적 기반이 만들어졌다.

암달의 법칙이란, 병렬처리 프로그램에서 차례로 수행되어야 하는 비교적 적은 수의 명령문들이, 프로세서의 수를 추가하더라도 그 프로그램의 실행을 더 빠르게 할 수 없도록 속도향상을 제한하는 요소를 갖고 있다는 것이다.

  • 잠재적인 프로그램 speedup을 기술하는 Amdahl의 법칙은 병렬화 시킬 수 있는 코드의 비율(P) 로 정의 된다.

    User inserted image

  • 만일 아무런 코드도 병렬화가 안되어 있다면 , f=0 이고 speedup=1 (no speedup) 이다. 만일 모든 코드가 병렬화되었다면 , f=1 이고 speedup 은 무한 대이다. (이론상)
  • 만일 코드의 50%가 병렬화되었다면 , 최고 speedup=2 이고 이것은 serial 코드보다 2배의 속도 향상을 가져옴을 의미한다.
  • 즉,  프로세스병렬화 한계가 반드시 존재한다는 것으로, 병렬처리가 불가능한 순차적인 부분이 있어 프로세스를 아무리 병렬화한다하더라도 더 이상 성능이 향상되지 않는 한계가 존재한다는 법칙이다.

이론 성능향상도
암달의 법칙에 의해 병렬프로그램의 성능향상도는 순차 프로그램에서 병렬화 가능한 부분의 비율에 의해서 결정된다고 했다. 그럼 여기서 시리얼 프로그램이 코드가 100이라고 할때 20이 병렬화가 불가능한 부분이고 나머지 80에 대해서 병렬화가 가능하다고 할때, 4개의 프로세서를 사용하여 병렬화할 경우 이론 성능향상도는

f : 병렬화가 불가능한 부분 = 0.2
n : 프로세서 =4

User inserted image

실제 성능향상도
이론 성능향상도는 통신부하, 부하분산 불균형에 대한 고려가 없지만, 실제 병렬프로그램에서는 이러한 사항들이 성능향상에 영향을 미친다.

병렬 프로그램의 효율(efficiency) E(n)
프로세서 사용 개수에 따른 병렬 프고르매의 성능 효율로 4개의 프로세서로 3배의 성능향상이 있을 경우 0.75또는 75%의 병렬프로그래밍의 효율이 있다고 한다.

User inserted image

병렬 프로그램의 성능 향상
  • 순차프로그램에서 병렬화 가능한 부분을 증가시킨다.
  • 병렬 프로세스들의 부하분산을 고르게 한다.
  • 통신에 소요되는 시간을 최소화 한다.

본 문서는 트랙백에 걸린 문서들을 참고해서 작성되었습니다. 참고라기 보다는 거의 copy&paste 했죠 ^^;; 문제가 되는 부분은 지적해 주세요.


Posted by hongiiv

2007/02/23 10:32 2007/02/23 10:32
, , , , , ,
Response
No Trackback , 4 Comments
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/160

IBM CSM dsh, dcp Script

============================================================
Example 7-3 dgshell distributed shell command
============================================================
[root@node-a /root]# cat > /usr/local/bin/dgshell
#!/usr/bin/perl
$commands=join " ",@ARGV;
system "/bin/cat /tmp/gpfs.allnodes | /usr/bin/xargs -i /usr/bin/ssh {} \'hostname; echo
\"------\"; $commands; echo\'";
exit;
[root@node-a /root]# chmod 755 /usr/local/bin/dgshell

============================================================
Example 7-4 dgcopy distributed copy command
============================================================
[root@node-a /root]# cat > /usr/local/bin/dgcopy
#!/usr/bin/perl
if ($#ARGV != 1)
{print "Error: ";
print "Missing argument.\n";
print "Usage: dgshell local_filename remote_filename\n";
exit 1;
}
$in=$ARGV[0];
$out=$ARGV[1];
if ($in eq $out)
{print "Error: \n";
print "The localfile name and the remote filename must be different\n";
print "Otherwise your file will be corrupted during copying to the localhost\n";
exit 1;
}
system "/bin/cat /tmp/gpfs.allnodes | /usr/bin/xargs -i /usr/bin/scp $in {}:$out";
exit;
[root@node-a /root]# chmod 755 /usr/local/bin/dgcopy
[root@node-a /root]#

============================================================
Example 7-5 dgshell and dgcopy usage
============================================================
[root@node-a /root]# dgshell date
node-a
------
Thu Nov 15 17:54:49 CST 2001
node-b
------
Thu Nov 15 17:54:49 CST 2001
node-c
------
Thu Nov 15 17:54:50 CST 2001
[root@node-a /root]# dgcopy /root/gpfs.allnodes /tmp/gpfs.allnodes
gpfs.allnodes 100% |*****************************| 21 00:00
gpfs.allnodes 100% |*****************************| 21 00:00
Note: The /usr/bin/xargs command can run multiple processes at the same
time by using the command line option -P n, where n is the maximum number
of processes. In Example 7-3 on page 188 we are not using this option
because, since more than one process will be running at the same time, the
output of all commands may be mixed. If you want to run the commands on all
nodes as simultaneously as possible, use /usr/bin/xargs -i -P 0, but be
aware of the mixed output that you may receive.
190 Linux Clustering with CSM and GPFS
gpfs.allnodes 100% |*****************************| 21 00:00
[root@node-a /root]#

Posted by hongiiv

2007/02/02 17:35 2007/02/02 17:35
Response
No Trackback , No Comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/156

28노드 PIV 리눅스 클러스터 모니터링

linux cluster


ganglia를 통해서 본 28노드의 현재 상황 모든 노드가 열심히 일하고 있다. ^^;;

Posted by hongiiv

2006/07/20 16:13 2006/07/20 16:13
Response
No Trackback , No Comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/129

슈퍼컴퓨터 성능 측정 - Linpack Benchmark

linpack java - performance check


슈퍼컴퓨터에서 사용하는 성능측정 방법은 Flops라는 단위를 사용한다. 흔히 Linpack이라는 패키지를 통해서 측정하게 되는데 이것의 자바버전으로 웹상에서 쉽게 자신의 컴퓨터의 성능을 측정할 수 있다. 전 Thinkpad T42에서 측정해봤는데 약 87Mflops 정도 나오네요. Top 500에 랭크된 최하위 슈퍼컴퓨터가 현재 1028개의 제온 CPU를 탑재하고 2026GFlops의 성능을 내고 있으니... ㅋㅋㅋ

Posted by hongiiv

2006/07/09 15:36 2006/07/09 15:36
, ,
Response
No Trackback , a comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/128

흔히 클러스터 시스템에서 벤치마크는 LINPACK을 사용하거나 HPL(High-Performance Linpack Benchmark)을 통해서 시스템의 실제 성능을 측정하게 된다.

1. 시스템의 성능이란 ? - FLOPS
그럼 성능?에서 성능은 무엇을 의미하는가?에 대한 해답이 선행되어야 할것이다. 슈퍼컴퓨터에서의 성능은 FLOPS(Floationg-point Operations Per Second : 초당 실수연산 회수) 1초에 덧셈, 뺄셈, 곱셉, 나눗셈 등의 실수 계산을 총 몇 번 할 수 있는지를 나타내는 값이다. 만약 1초에 실수끼리 곱셈을 2번씩 할 수 있다면 그때의 계산 속도는 2FLOPS가 되는 것이다.

[quote]MFLOPS(MegaFLOPS, 106FLOPS)
GFLOPS(GigaFLOPS, 109FLOPS)
TeraFLOPS(1012FLOPS)
PetaFLOPS(1015FLOPS)
[/quote]

2. 이론성능 vs. 실제성능 - Rpeak & Rmax
그럼 이제 성능에 대해 알아봤으니 어떻게 성능을 측정하는가?에 대한 해답이 나와야 한다. 성능은 크게 이론성능과 실제성능으로 나뉜다. 이론성능(Rpeak)은 말 그대로 이론적인 성능이고 실제성능(Rmax)은 여러가지 테스트를 통해 얻어낸 실제로 측정된 성능이다.

그럼 실제성능을 구하기전에 내 하드웨어(CPU)가 낼 수 있는 이론적인 성능을 계산해 보도록 하자. KIST 슈퍼컴퓨팅센터의 qna에 올라온것을 인용하자면

[quote]이론 성능치, peak performance(Rpeak)는 아래의 식을 통해 구할 수 있습니다.
Flop/s=(cycle/s)*(Flop/cycle)*(Number of pipes)
Pentium-IV 3GHz일 경우 ia32(Itaium을 제외한 intel, AMD의 대부분의 CPU) 아키텍처 계열의 CPU로서 1 cycle당 (double precision) floating point 연산은 최대 2번 수행할 수 있으며, vector 계열이 아니므로 number of pipes는 1입니다.
따라서 위식을 적용하면
3(GHz/sec) * 2(Flop/Hz) * 1 = 6 GFlops 가 나옵니다.
따라서 위와 같은 노드가 32개 일 경우
32*6 = 192 Gflops 가 나옵니다.
[/quote]

3. LINPACK & HPL
그럼 이제 실제성능을 측정해 보도록 하자. HPL(A Portable Implementation of the High-Performance LinpackBenchmark for Distributed-Memory Computers)을 통해서 실제성능을 측정할 것인데, 이는 영문에서 보는바와 같이 분산-메모리 컴퓨터에서 즉 각각의 시스템이 독립적인 클러스터 시스템에서 성능을 측정하는데 사용한다. HPL은 mpi를 통해서 Linpack(여러 프로세서가 하나의 커다란 메모리 공간에 접근하여 계산을 수행)을 병렬로 처리하도록 해준다. Top 500에서도 LINPACK과 동일하게 HPL을 통해 측정된 값을 동일하게 인정해 준다.

[quote]LINPACK은 Liner Package의 약자로서 선형 시스템의 해를 구하는데 널리 사용하는 package이다. 해를 구하는 연산이 대부분 부동 소수점(Floationg-point)로 구성되어 있어 시스템의 성능을 측정하는데 널리 사용하는 측정법이며, 현재 Top 500 HPC에 대한 성능측정 및 순위 책정도 Linpack을 사용하고 있다.
[/quote]

따라서 클러스터 시스템의 성능 측정을 위해서는 mpi와 hpl이 설치되어야 한다. 또한 hpl은 BLAS, CBLAS, ATLAS의 설치가 선행되어야 한다. 그럼 하나씩 설치해 보도록 하자.

[quote]mpich - mpich 1.2.7p1
ATLAS - atlas 3.6.0
CBLAS - ?
BLAS - ?
GCC - 2.96
Kernel - 2.4.18-3
OS - RedHat 7.3
[/quote]

Posted by hongiiv

2006/07/06 09:52 2006/07/06 09:52
, , , , , , , , , , ,
Response
No Trackback , No Comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/126

선형대수 - BLAS, ATLAS, HPL

어디서 가져오긴 가져왔는데 출처를 확실하게 모르겠네요. ^^; 문제되면 알려주세요.

[quote]BLAS (Basic Linear Algebra Subprograms)
선형대수(Linear Algebra) 문제의 해를 효율적으로 구하기 위한 방법의 하나는 Basic Linear Algebra Subprograms(BLAS)를 이용하는 것이다. BLAS는 blocking 기법을 바탕으로 하여 기본적인 vector와 matrix 연산을 수행하는 역할을 한다. BLAS에는 연산의 종류에 따라 Level 1, 2, 3 BLAS로 나뉘어진다. Level 1 BLAS는 vector-vector 연산을 수행하고, Level 2 BLAS 는 matrix-vector 연산, Level 3 BLAS는 matrix-matrix 연산을 하는데 사용되어진다. BLAS는 뛰어난 효율과 우수한 이식성을 바탕으로 LAPACK과 같은 Linear Algebra Software의 개발에 사용되고 있다. 현재 각각의 architecture에 hand-optimized BLAS가 software vendor들에 의해서 만들어져 있다. 그러나 새로운 architecture마다 최적화된 BLAS를 만드는 작업은 시간이 많이 걸릴 뿐만 아니라 금전적인 문제도 가지고 있 다. 이로 인해 Pentium/Linux architecture를 위한 효율적인 matrix multiply를 할 수 있는 BLAS가 아직 만들어지지 않았다. 따라서 오늘날의 다양한 Architecture에서 효율적으로 사용될 수 있는 basic linear algebra routines 를 만들어주는 software가 필요하게 되었다. 이러한 목적을 달성하기 위하여 만든 소프트웨어가 바로 ATLAS(Automatically Tuned Linear Algebra Software)이다.
[/quote]

[quote]ATLAS (Automatically Tuned Linear Algebra Software)
ATLAS는 그 이름에서도 알 수 있듯이 오늘날의 microprocessor에서 고도의 효율성을 달성할 수 있는 basic linear algebra routine을 스스로 만들 수 있는 software이다. 따라서 프로그램의 특성에 따라, 강한 이식성과 architecture의 특성에 맞는 BLAS implementation을 제공하고 있다. 지금도 꾸준히 새로운 버전의 ATLAS가 만들 어지고 있으며, C와 Fortran77 interface를 제공하고 있다. 현재 안정버전은 3.2.1까지, 개발자버전은 3.3.1까지 만들어져 있다. ATLAS 3.2.1에서는 Intel의 SSE와 AMD의 3DNOW를 이용하여 library를 만들고 있으며, ATLAS 3.3.1에서는 Intel 의 SSE, SSE2와 AMD의 3DNOW, 3DNOW2를 각각 이용하도록 되어있다. 따라서 ATLAS 3.2.1을 사용한 Pentium III에서는 단정도 부동소수점(single precision floating point) 연산의 성능이 확연히 좋아지고, ATLAS 3.3.1을 사용한 Pentium4 시스템에서 SSE2 기능을 탐지하여 사용함으로서 배정도 부동소수점(double precision floating point) 연산에서의 성능이 획기적으로 개선되는 것을 확인할 수 있다.
[/quote]

[quote]HPL(High Performance Computing Linpack Benchmarking)
HPL은 distributed-memory 컴퓨터에서 배정도 부동소수점 연산을 수행하여 그 성능을 측정하는 소프트웨어이다. HPL 패키지는 계산하는데 걸린 시간과 얻어진 해의 정확성을 분석하는 역할을 하고, 다양한 변수들을 적용하여 해당 시스템의 최상의 성능을 알아내는 역할을 한다. HPL을 사용하기 위해서는 MPI implementation 과 BLAS implementation을 필요로 한다.
[/quote]

Posted by hongiiv

2006/07/05 19:31 2006/07/05 19:31
, ,
Response
No Trackback , No Comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/125

리눅스를 이용한 고성능의 클러스터 시스템을 구축하기 위해 제일 처음이자 중요한 것은 시스템을 어떻게 설치할까라는 문제일 것이다. 간단하게 10노드 미만의 클러스터를 구축한다면야 그냥 모든 리눅스 머신에 리눅스 배포판 시디를 넣고 일일이 시디롬 설치를 하는것이 오히려 간단할 수도 있겠지만 10노드 이상의 리눅스 클러스터를 구축한다면 이는 그리 만만한 작업이 아닐것이다. 또한 추후에 하드디스크등의 문제로 인해 다시 설치해야 하는 일등의 유지보수 문제를 생각한다면 다음의 방법들을 고려해 보아야 할것이다.

다음의 내용들은 이미 많은 인터넷상의 howto문서등에 나와 있는 내용이며 이를 내 입맛에 맞도록 고친것이다. 참고문헌에 참고한 인터넷사이트와 책들을 적어 놓으니 이 문서에서 부족한 점은 참고문헌을 꼭 참고하기 바란다.

클러스터의 설치부분은 다음의 두가지로 요약해 볼 수 있겠다. 단순히 설치만을 할것인지? 아니면 전문적인 클러스터 설치프로그램을 사용할 것인지? 단순히 설치만을 하는 방법은 학교실습실등에서 여러대의 pc를 관리할 때에도 유용하게 사용될 수 있을것이다. 윈도우 pc의 경우 이러한 솔루션은 이미 상당히 존재하는데 필자가 자주 사용했던 방법은 바로 고스트가 되겠다. 그러나 우리가 설치해야 하는것은 윈도우 pc가 아니라 리눅스 이기 때문에 더욱더 다양한 방법이 존재 한다. 그럼 우선 첫번째로 단순 설치만 하는 방법에 대해서 살펴 보도록 하겠다.

단순히 os만 설치하자!

1. RedHat 계열의 배포판에서 kickstart, tftp, dhcp를 이용한 자동 설치

Posted by hongiiv

2006/03/07 10:07 2006/03/07 10:07
Response
No Trackback , No Comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/53

IBM Blade JS20

Blade JS20


진행상황
마스터노드(IBM OpenPower720)와 파일서버(IBM x336)에 디스크(IBM DS430 2TB)를 붙인 상태 ㅡㅡ;

Posted by hongiiv

2005/12/28 22:34 2005/12/28 22:34
Response
No Trackback , No Comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/34

New Linux Cluster


서울대에 설치된 eServer BladeCenter JS20(PowerPC970 2.2GHz), Myrinet, IBM이 현재 top500에 64위에 올라와 있다.
IBM BladeCenter JS20 480노드로 구성된 5.6183 TFlop/s Linpack Performance를 내고 있다.

근데 갑자기 왠 서울대 리눅스 클러스터를 들먹이느냐! 요번에 우리가 도입한 놈이 서울대에 들어온거랑 똑같은 JS20으로 서울대의 1/5(94 node)수준 정도..
암튼 전기공사와 항온항습기 공사를 끝내고 대한항공의 파업으로 예정보다 좀 늦게 하드웨어까지 모두 들어온 상태다.
오늘부터 실질적인 클러스터링 작업에 들어갔다. 우선 오늘은 BladeCenter의 내부 Management Module를 셋팅만 한 상태이다.

간략하게 앞으로의 작업을 살펴보면..
1) 마스터노드와 파일서버의 설치 및 셋팅
2) xCat 설정 및 계산노드의 설치 및 셋팅
3) compiler, parallel library, job manager, monitering tool 설치가 있겠다.

자세한 구축 내역은 추후에.. 암튼 빨리 끝내고 연말을 알차게 보내야지.. :)

Posted by hongiiv

2005/12/26 20:04 2005/12/26 20:04
Response
No Trackback , No Comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/32

pbs job submit for java application

java를 다운로드하여 설치한다. java 홈페이지에서 linux용 파일을 다운로드하여 실행하면 압축이 풀리면서 설치가 된다.

# pwd
/sapdata/j2sdk1.4.2_10

# cd /sapdata

# ln -s j2sdk1.4.2._10 java <-심볼릭 링크 설정

# ls
j2sdk1.4.2_10
java

# cat /etc/profile <-java 환경 변수 설정
export JAVAHOME='sapdata/java'
export CLASSPATH=.:$JAVA_HOME/lib/*:$PBS_O_WORKDIR

pbs로 job을 제출할 경우 현재 디렉토리(.)를 인식하지 못하기 때문에 job 제출시 `java test` 명령으로 실행하면 현재 디렉토리에 분명히 `test.class`가 있어도 `class not found` error가 발생한다.(왜 `.`을 인식하지 못하는지..) 현재 작업디렉토리를 인식시키기 위해 PBS_O_WORKDIR을 class path에 지정해줘야 한다.

# source /etc/profile

# cat java_job.sh
env |grep CLASSPATH
echo $PBS_O_HOST
echo $PBS_O_WORKDIR
echo $PBS_O_HOME
java test

# qsub java_job.sh

# more java_job.sh.o123
CLASSPATH=./:/lib/*:/sapdata/home/sap/hong_test/java <- 환경변수 class path 출력결과
node01.biohealthinfo.org
/sapdata/home/sap/hong_test
/sapdata/home/sap
Hello!!! <- test.java 실행결과

# env |grep CLASSPATH
CLASSPATH=.:/lib/* <- pbs가 아닌 일반 환경에서는 $PBS_O_WORKDIR 이 적용되지 않는다

Posted by hongiiv

2005/12/21 12:48 2005/12/21 12:48
Response
No Trackback , No Comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/27

Linux Cluster (1)

X86 Linux Cluster

Posted by hongiiv

2005/11/24 20:15 2005/11/24 20:15
Response
No Trackback , No Comment
RSS :
http://socmaster.homelinux.org/~hongiiv/rss/response/7



야후 블로그 벳지


Site Stats

Total hits:
291450
Today:
57
Yesterday:
166