슈퍼 클러스터 관련 궁금하여 찾아본 내용을 공유합니다.
1. 슈퍼 클러스터가 무엇일까?
Superclusters — clusters of clusters
- Beowulf Cluster Computing with Linux - Thomas Sterling
하나의 백본 인프라 기반을 가지고 있는 기관이 있을 때,
광역 네트워크로 통합되는 산업 단지의 별도 건물 또는 공유 전산실과 같은 로컬 영역 내의
클러스터 집단을 포함하여 상위의 클러스터로 묶는 것을 말함.
어원?
초은하단(Superclusters)
- 초은하단은 은하단 및 은하군으로 이루어진 대규모 무리로 우주에서 가장 거대한 구조 중 하나이다.
2. 클러스터 구성
요즘 일반적으로 많이 사용하는 클러스터(Hadoop, Kubernetes)의 구성은
보통 마스터(Name node, Coordinator, Controller) <-> 워커(Data node, Worker node) 구성으로
작업을 나눠주는 소수의 코디가 있고, 코디가 나눠준 작업 단위를 처리하는 다수의 워커 형태임.
슈퍼클러스터는 보통 고성능 컴퓨팅(high-performance computing, HPC)을 위한 클러스터 형태로
수십년 전부터 오픈소스 기반으로 구축가능한 가성비 좋은 베오울프 클러스터를 연구하기 시작했음.
3. Beowulf Cluster?
소수의 메인급 서버 컴퓨터, 많은 노드가 존재함
연산 작업을 통제하는 메인 서버가 병렬화된 단위 작업을 하위 노드의 프로세서에 배포하고
단위 작업의 결과를 메인 서버가 관리하고 전체적으로 동기화함.
베오울프의 노드들은 CPU 와 연산 메모리 램과 마더보드 그리고 이더넷 기능 만을 갖는
최소한의 환경만을 요구하므로 pxe 부트(NIC 가 지원함. DHCP -> TFTP)로 부팅 디스크 조차도 별도로 없음.
4. 클러스터 Parallel Computing 동작 방식
(1) TORQUE 를 이용한 job submission.
(2) Maui Scheduler 는 각 노드의 프로세서, 메모리, 디스크 등의 리소스를
작업에 할당하는 어떤 노드를, 어느 시점에, 어떻게 제어할 지 정하는 policy engine 임.
각 작업은 MPI 를 사용하여 서로 통신 할 수 있음.
(3) 병렬 컴퓨팅에 사용할 수 있도록, 분산 메모리 응용 프로그램의 메시지 전달 표준 MPI
병렬 언어 라이브러리로 C 또는 포트란으로 작성함.
(표준은 MPI 로 굳어짐. Open MPI, MPICH2 를 많이 사용함)
최근 예제 프로그램을 보면 MPI + Open MP 라이브러리도 함께 사용하고 있음.
동작하는 방식 & 관련한 자료를 보고있습니다.
세부적인 설정이 가능하기 때문에 설명을 위해서는 공부가 많이 필요할 것 같아서
관련 설명은 다음 기회에!
5. Linux Kernel 의 관련 기술
RDMA (원격 직접 메모리 액세스)는 일반적으로 고속, 저지연 네트워크(일명 패브릭)를 통해 구현되는 네트워킹 기술임.
원격 호스트의 메모리에 직접 액세스 할 수 있어 지연 시간과 CPU 오버 헤드를 크게 줄일 수 있음.
이더넷 NIC 에서 RoCE 프로토콜 등의 지원 필요함.
리눅스에서 등록된 노드를 ib_write_bw 커맨드로 관리함
LWN: RDMA
- https://lwn.net/Articles/133649/
- https://lkml.org/lkml/2021/2/22/724
6. 사용 분야
업계의 가장 어려운 문제를 해결하기 위해 HPC 를 사용함.
핵 반응 모델링
유전학 모델링
석유 및 가스 시뮬레이션
경영 시뮬레이션
반도체 디자인
날씨 예측 시뮬레이션
댓글 0
.