Posted
Filed under Computer/HPC

박광기

(기상연구소 예보연구실)

1. 서 론

1940년대에 범용 컴퓨터의 급속한 발전을 계기로 1980년대 개인용 컴퓨터의 출현으로 소형이며 컴퓨터의 보급이 늘어나면서 1991년도 리누스 토발츠가 연구해낸 멀티태스팅이 지원되는 미니 유닉스 시스템 소스의 인터넷 배포로 수많은 프로그래머의 계속적인 보강에 의해 현재의 리눅스 시스템이 출현하였다.

컴퓨터 하드웨어 산업의 발전 속도에 맞게 이에 영향을 받은 많은 컴퓨팅 파워의 발전이 급속하게 이뤄졌다. 이러한 컴퓨팅 파워의 만족을 위해 급속히 발전된 개인용 컴퓨터의 하드웨어를 사용하여 고성능을 내기위해 1994년 미국 NASA의 계약사인 CESDIS에서 최초의 Beowulf클러스터를 제작 하였다.

소스가 공개된 유닉스 구조의 리눅스가 저가의 고성능 개인용 컴퓨터와 발달된 통신 기술의 네트워크에 다양한 개발에 적합하여 이를 이용한 클러스터 연구가 활발하게 되었다.

적은 비용으로 성능을 높일 수 있는 클러스터 연구에 사용되는 다양한 기법들의 소개로 기상모델의 적용과 더불어 앞으로 기상연구에 도움이 되고자 소개하려한다.

2. Cluster

Cluster라함은 “무리”,“집단”을 의미한다. 컴퓨터에 넘어오면서 개인용 컴퓨터 무리를 소프트웨어적으로 하나의 시스템처럼 묶어 하나의 문제의 계산을 이 컴퓨터 집단이 처리하도록 하는 것을 의미한다.

현재 Cluster는 크게 HA Cluster(High Available Cluster)와 HPC(High Performance Computing) Cluster로 나눌 수 있으며 본 연구에서는 고성능을 내기위한 연구이므로 HPC관련 클러스터에 중점으로 설명을 해나갈 것이다.

3. HPC Cluster

HPC Cluster를 연구하기위해 다양한 프로젝트 들이 존재하나 초석이 된 것은 Beowulf 프로젝트일 것이다. 본 장에서는 HPC 클러스를 위한 공통되는 기술적인 부분을 소개하려 한다. 병렬 컴퓨팅은 분산메모리 방식과 공유메모리 방식으로 크게 두 부류로 나눌 수 있다.

Cluster에 병렬 프로그램을 run시키기 위해서는 프로그램을 병렬 Library를 이용하여 coding 해줘야한다. 현재 병렬 컴퓨팅 연구에 사용되는 병렬 Library는 병렬 표준 Library인 MPI(Message Passing Interface)를 따르고 있으며 리눅스 클러스터에서는 MPI의 일환으로 MPICH와 LAM을 주로 사용하고 있으며 MPI 프로그래밍은 프로그래머가 일을 하나하나 분석하여 메시지의 전송 및 동기화 등과 같은 일련의 문제를 고려하여 프로그램을 작성해야 한다. 이는 모델 개발자에게 과도한 프로그래밍 부담을 준다는 단점이 있지만 프로그램의 성능을 최대로 이끌어 낼 수 있다는 장점이 있다.

이와 같은 병렬 방식을 분산메모리 방식이라 하며 이러한 HPC Cluster는 가능한 같은 기종으로 구성하여 최대의 performance를 내기위해 사용한다. 그러나 이기종 간에 HPC Cluster를 구성하기위해 사용되는 기법으로 PVM(Parallel Virtual Machine)를 사용하기도 한다. 본장에서 PVM기법은 앞으로 거론하지 않기로 한다.

공유메모리 방식의 병렬 Library로는 OpenMP가 잠정적으로 표준화가 되어 있다. 최근들어 하드웨어의 발전으로 인해 Dual CPU이상의 컴퓨터들이 나오고 있다. 이러한 컴퓨터를 SMP (Symmetric Multi-Processing) 장비라하며 공유메모리 방식의 병렬화가 가능한 장비이다.

OpenMP는 기존의 HPF(High Performance Fortan)에 대한 대안으로 제안된 것으로서 사용자가 순차적 프로그램 소스에 몇 개의 컴파일러 directive만을 추가함으로써 병렬프로그래밍이 간단해지며, 병렬화가 필요한곳에서 여러 thread로 분산되어 공유메모리를 참조하도록 컴파일이 된다.

최근 Cluster는 SMP장비를 이용한 Cluster구성을 많이 하므로 각각의 장점을 활용하여 공유메모리 방식과 분산메모리 방식을 절충한 Hybrid(혼합형 병렬화) 기법을 많이 사용하기도 한다(Fig. 1). 혼합형 병렬화 기법이 클러스터 성능에 주는 영향은 네트워크와 클러스터 항목에서 추가적인 설명을 하기로 한다.

4. 네트워크와 클러스터

클러스터 발전방향에 네트워크 장비의 발전은 많은 영향력을 주었다. 그러나 초고속 네트웍크는 가격대 성능비를 내기위해 사용하는 클러스터에 범용적으로 사용하기에는 부담스러운 면이 있게 된다. 이러한 부분을 해결하기위한 전세계의 클러스터 개발자 및 컴퓨터 산업 관련자들이 범용 장비를 이용한 초고속화를 위한 연구가 이뤄져 다양한 방법들이 나왔고 또한 실용화 된 것도 있다.

Channel bonding 기법은 물리적인 Fast Ethernet 네트워크 2개 이상을 소프트웨어적으로 논리네트워크 하나로 만들어 사용하는 것으로 네트워크 대역폭을 물리적인 네트워크 대역폭 합의 약 85~95%가량 늘릴 수 있다. Channel bonding에 의한 네트워크 대역폭의 향상 효과는 대체로 15~20%의 성능을 향상시키는 것으로 나타났다.

그러나 Gigabit Network을 UTP Category 5를 이용한 Dumi S/W HUB를 이용한 Gigabit Channel bonding에서는 1byte ~ 8Mbyte사이의 패킷 크기에서의 네트웍 퍼포먼스에는 큰 효과를 주지 못한다. 이유는 Gigabit 하나로도 충분한데 bond 모듈을 거쳐 좀더 많은 일을 해야 하기에 나타나는 증상 같다. 또한 본 연구에는 Disk-less Cluster만 사용하였다. Fig. 2참조)

Fig. 3에서 Channel bondig과 Fast Ethernet사이의 성능 비교를 위해 MM5 모델을 이용하여 테스트하였다.

그러나 3개 이상의 물리적인 네트워크 장비를 channel bonding시키는 것은 가격대 성능비에 적합하지 않아 잘 사용하지 않는다. 또한 M-via 기법은 네트워크 통신을 위해 CPU가 over head를 내는 것을 줄이고자 고안된 기법으로 고가의 초고속 네트워크 하드웨어에 장착된 방법을 소프트웨어적으로 해결한 것이다. 이 방법을 이용하게 되면 네트워크 over head를 줄이며 초고속 네트워크 통신을 할 수가 있다. Fig. 4의 상단 그림은 TCP/IP기반과 M-VIA기반의 네트워크 대역폭을 벤치마크한 표이다. 하단 그림은 MPI를 TCP/IP기반과 M-VIA기반하에서 각각 성능 비교를 한 것으로 약 10%정도 TCP/IP기반보다 성능이 좋음을 보여주고 있다(Fig. 4).

이렇게 네트워크 성능에 따라 클러스터 성능을 좌우하는데 큰 영향력이 있다는 것을 알게 되면서 이부분의 성능 개선을 위한 많은 노력을 하고 있다.

한 예로 혼합형 병렬화의 효율을 살펴보면 단일 네트워크에서는 119%, channel bonding에서는 123%의 성능향상을 보이는 것으로 나타났다. 즉 혼합형 병렬화의 효과는 대체로 19~23%의 성능향상을 가져오는 것으로 나타났다. 하지만 channel bonding과 혼합형 병렬화에 의한 효과를 종합하면 141%의 성능 향상을 보여 클러스터의 계산 성능이 획기적으로 개선된 것을 알 수 있다.

본 연구에서 다른 초고속 네트워크(Gigabit Fiber, Myrinet, Infini band)를 중점으로 설명하지 않은 이유는 저가의 범용 장비를 이용한 클러스터링 소개를 통하여 많은 클러스터연구에 활성화에 초석이 되고자 고가의 장비 소개는 빼기로 한다.

참고 문헌

김영태, 이용희, 최준태, 오재호, 2002: 초고속 네트워크를 이용한 PC 클러스터의 구현과 성능평가, 한국정보과학회논문집: 시스템 및 이론, 29, 57-64.

박광기, 이용희, 조천호, 2003: 중규모 기상모델운영을 위한 클러스터상에서의 혼합형 병렬화기법 개발, 한국기상학회보 대기 : 제 13권 1호 574-575

SPCC Univ of Seoul : http://spcc.uos.ac.kr/

예전에 내가 기상연구소에 다닐때 썼던 글중의 하나이다.  내 홈페이지 (http://www.cep.kr) 에 올렸던것인데...  너무나 가려져있는 홈페이지인것 같아 이렇게 테더툴에 생각난김에 꺼내어 본다. 출처역시 내 홈페이지구나... ㅋㅋ
좀더 자세한것은 아래의 파일을 다운 받아 보시면 그림도 나옵니다.

[DN=1100532101.pdf]paper download[/DN]


2007/07/28 00:28 2007/07/28 00:28
[로그인][오픈아이디란?]