Posted
Filed under Computer/HPC

HPC라 하면 컴퓨터 군집을 묶어서 하나의 시스템처럼 사용할수 있게 꾸며놓은 컴퓨터 군으로 Cluster의 한 종류로서 고성능 컴퓨팅을 위한 기술이라 보면 된다. 그래서 HPC를 슈퍼컴퓨터라 불리우기도 한다.

HPC를 사용하기위해서는 빠른 컴퓨팅을 위해 하드웨어을 대부분 똑같은 스팩으로 맞추게 된다. 이유는 속도가 낮을 노드가 있게된다면 대부분의 컴퓨팅 속도는 이 속도가 낮은 노드의 컴퓨터 속도에 맞춰 움직이므로 가치가 떨어지게 되므로 하드웨어 스펙을 똑같게 맞춰준다. (물론 틀려도 사용하는데는 문제가 될수도 있고 문제가 안될수도 있다. 그러나 대부분 큰 문제는 없다. 단지 가치가 떨어져 클러스터를 안쓰는 경우가 더 나을수 있으므로 클러스터를 스펙이 틀리게 구성하지 않는다.)

그리고 클러스터는 분산 메모리 계산(MPP) 방식이 기본 개념이므로 분산된 노드들의 메모리의 데이터를 공유해서 사용하기위해 이 데이터를 네트워크를 통해 각 노드들끼리 통신하여 데이터를 공유하게 되므로 클러스터에서 CPU성능의 중요성만큼 네트워크의 성능(FastEthernet/Myrinet/Infiniband) 또한 크게 자리를 찾이하고 있다.

여러대의 컴퓨터를 하나의 시스템처럼 사용하기위해 여러 시스템에 있는 보안을 풀어줘야만 클러스터로서 작동하는데 큰 문제가 없다. 그렇다고 무족건 보안는 풀수많은 없기때문에 적정 수준으로 환경에 맞춰 보안 설정을 해야한다. 그러나 가장 기본적으로는 ssh(hostbase ssh/패스워드없이 ssh login) or rsh를 이용하여 패스워드 물어보는것 없이 로그인 및 명령어 실행이 가능해야한다. 이것은 클러스터의 기본이기때문에 꼭 둘중 하나는 써야 된다.

그리고 이렇게 구성된 시스템에 병렬 라이브러리를 사용하지 않는다면 관리하기 편한 서버군밖에 되지 않는다. 즉, 병렬 라이브러리를 사용하여 여러노드에서 하나의 결과물을 얻기위해 병렬로 작업할수 있도록 데이터 공유할수 있도록 도와주는 병렬 라이브러리가 꼭 있어야한다. 프로그램 개발시 개발된 프로그램내에 병렬 라이브러리까기 포함된경우라면 그것의 환경에 맞춰 설정만하면 되겠지만 그렇지 않은경우라면 병렬 라이브러리가 (MPI/MPICH/PVM/OpenMP) 클러스터에 꼭 깔려 있어야만 한다.

이런정도가  클러스터의 기본 개념이라고 생각하고 이것에 살을 붙여가며 보안(iptables/etc), 관리툴(ACE/CMU/Ganglia), 계정(NIS/LDAP/local), 환경설정(profile/csh.cshrc/module), 파일 시스템(ext3/xfs/lustre(sfs)/GFS/PVFS/PVFS2), Job Scheduler(SGE/LSF/PBSpro), 네트워크, NIC 등등에 대한 구조와 설정 그리고 어떻게 편리하게 사용할것이냐의 살들을 붙여가면 멋진 클러스터가 된다고 보면된다.

2008/11/11 13:09 2008/11/11 13:09
[로그인][오픈아이디란?]