Posted
Filed under Computer/HPC

중규모 기상모델운영을 위한 클러스터상에서의 혼합형 병렬화 기법 개발

박광기 / 이용희 / 조천호

기상연구소 예보연구실


1. 서 론

1940년대에 세계 최초로 범용 컴퓨터가 개발된 이후, 오늘날에 이르러서는 컴퓨터 계산 성능의 급진적인 발달로 인하여 개인용 컴퓨터의 성능이 10여년 전의 슈퍼컴퓨터의 성능을 능가하 는 계산 처리 능력을 갖추게 되었으며, 아울러 통신 기술의 발달로 네트워크를 통하여 초고속으로 자료교환이 가능하게 되었다. 따라서 고속 네트워크를 이용한 “개인용 컴퓨터의 클러스터”를 통한 분산처리 시스템이 발달하게 되었으며, 이러한 분산 처리 시스템의 운영은 저가의 하드웨어를 이용한 초고속 환경을 제공할 수 있으므로 기상모델의 병렬 프로그램의 연구 및 운영에 있어서 최적의 환경을 제공하게 되었다(김영태 등, 2002)

전 세계적으로 보았을 때 클러스터의 연구는 대부분 표준화된 라이브러리인 MPI(Message Passing Interface)를 사용하고 있기 때문에 클러스터링의 기술적인 접근은 거의 일치한다. 그러나 아직까지 분산 병렬처리의 사용에 대한 가시적인 결과가 나오지 않은 상태이다. 이는 분산 시스템의 구현에 앞서 병렬 프로그램의 개발과 구성이 어렵기 때문이라고 분석된다.

이 연구에서는 클러스터 상에서 최소의 비용으로 네트워크 환경을 최적화할 수 있는 혼합형 병렬화 기법을 소개하고 이를 기상모델에 적용하여 그 성능을 평가하고자 한다.

2. 혼합형 병렬화 기법

병렬 컴퓨팅은 크게 나누어 분산메모리 방식과 공유메모리 방식으로 구분할 수 있다. 병렬 프로그래밍 접근법을 메시지 패싱(massage passing)이라고 하며, 병렬 프로그램을 작성하기 위해 가장 잘 개발된 일반적인 방법이다. 우리는 분산메모리 방식의 병렬 컴퓨팅에 빠른 속도로 메시지 패싱의 표준화가 되는 MPI (Message Passing Interface) 표준을 따를 것이다. 공유 메모리 방식의 병렬 컴퓨터 환경에서는 OpenMP가 그 잠정적인 표준화가 이루어져 있다. MPI 프로그래밍은 프로그래머가 일을 하나하나 분석하여 메시지의 전송 및 동기화 등과 같은 일련의 문제를 고려하여 프로그램을 작성해야 한다. 이는 모델 개발자에게 과도한 프로그래밍 부담을 준다는 단점이 있지만 프로그램의 성능을 최대로 이끌어 낼 수 있다는 장점이 있다. 반면에 OpenMP는 기존의 HPF (High Performance Fortran)에 대한 대안으로 제안된 것으로서 사용자가 순차 프로그램에 몇 개의 컴파일러 directive만을 추가함으로써 공유메모리를 참조하는 thread를 생성하도록 하는 병렬 기법이다.

혼합형 병렬화(hybrid parallelization)는 MPI와 OpenMP의 장점을 모두 활용하여 프로그래밍 함으로써 대칭형 CPU를 사용하는 SMP(Symmetric Multi-Processing) 노드들로 구성된 클러스터 시스템의 성능을 최대한 활용할 수 있게 해준다. 즉, 노드내부에서의 병렬화는 OpenMP를 통해 구현하고, 노드간의 병렬화는 MPI를 이용하는 방법이 있다(Fig. 1).

이 연구에서는 OpenMP의 장점인 쉬운 프로그래밍과 MPI의 장점인 고성능 컴퓨팅 및 복합성을 띈 혼합형 병렬 기법을 클러스터에 적용시켜 성능을 살펴보았다.

3. 혼합형 병렬화의 성능 분석

3.1 혼합형 병렬화를 위한 네트워크 구성

네트워크의 기술 발전은 클러스터의 발전 방향에 큰 영향을 주었다. 우리가 범용으로 사용하는 클러스터는 주로 Fast Ethernet을 통한 네트워크으로 구현된다. 그러나 분산메모리 병렬 처리방식에는 Fast Ethernet의 단일 네트워크만으로는 네트워크 통신부하의 문제점을 안고 있다. 이러한 네트워크 통신부하를 해결하기 위해 두 개 이상의 Fast Ethernet 네트워크를 논리적으로 묶어 네트워크 대역폭을 넓힌 Channel bonding을 사용하였다(http://www.beowulf.org).NetPIPE (http://www.scl.ameslab.gov)로 네트워크 통신 속도만 비교해 본 결과 단일 네트워크보다 두 개의 Fast Ethernet을 묶은 Channel bonding에서 2배의 네트워크 속도를 보인다.

또한 MPI를 사용한 계산에 있어 네트워크 부하를 최소화하기 위해 diskless 클러스터에서 NFS-ROOT로 사용되는 네트워크를 계산전용 네트워크와 분리하여 클러스터링 기본통신이 계산에 필요한 네트워크에 영향을 주지 않게 하였다. 성능 평가에 사용한 클러스터는 8노드의 SMP 클러스터이므로 한 노드에 2개의 CPU가 장착되어 총 16개의 CPU가 장착되었다.

3.2 혼합형 병렬화의 성능 평가

Fig.2에는 클러스터에서 MM5를 통한 MPI 및 혼합형 병렬화를 단일 네트워크와 Channel bonding 사이의 성능을 비교한 결과를 나타내었다. Fig. 2에서 상단은 MPI을 사용한 경우를 단일 네트워크와 Channel bonding을 한 경우를 실험한 것이고, 하단은 혼합형 병렬화 기법 사용하여 단일 네트워크와 Channel bonding 네트워크간의 성능을 비교한 것이다.

먼저 네크워크의 대역폭과 관련하여 성능향상을 살펴보기 위하여 단일 네트워크와 channel bonding을 한 경우를 비교해 보면 단일 네트워크의 경우에는 계산성능이 MPI를 사용한 경우에는 약 115% 향상되었으며 반면에 혼합형 병렬로 사용한 경우에는 119% 향상되었다. 즉 channel bonding에 의한 네트워크 대역폭의 향상 효과는 대체로 15~20%의 성능을 향상시키는 것으로 나타났다. 네트워크 대역폭이 2배 증가했음에도 불구하고 성능 향상이 미치지 못하는 것은 일반적으로 TCP/IP를 사용하는 통신에서 부가적으로 발생하는 통신 부하(불필요한 head 부분의 과도한 전송)를 발생시키는데 원인이 있는 것으로 알려져 있다.

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

사 사

이 연구는 기상청에서 시행하는 기상지진기술개발사업의 세부과제 “한반도 악기상(집중호우) 감시 및 예측기술개발”의 일환으로 수행되었다.

참고 문헌

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



수록 : 한국기상학회보 (대기) 2003
생각나서 함 적어봤다... ㅋㅋ

혹시 논문이 정상적인것을 읽어보고 싶어하실분을 위해 file을 올립니다.
[DN=1201127978.pdf]paper download[/DN]

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