리눅스 클러스터에서 MPI 기반 병렬 프로그램의 동적 동시 스케줄링 기법

A Dynamic Co-scheduling Scheme for MPI-based Parallel Programs on Linux Clusters

  • 김혁 (한국외국어대학교 전자정보공학부) ;
  • 이윤석 (한국외국어대학교 전자정보공학부)
  • 발행 : 2008.01.31

초록

빈번한 메시지를 주고받는 MPI 기반의 병렬 프로그램에서 효과적으로 통신이 이뤄지기 위해서는 송수신 프로세스들이 각 노드에서 동시에 스케줄되어야 한다. 그러나, 일반적으로 클러스터 컴퓨터를 구성하는 각 노드는 범용시분할 운영체제를 기반으로 하며, 이 경우 병렬 프로그램을 구성하는 프로세스들은 각 스케줄러에 의해 자율적으로 관리되므로 이들을 동시에 함께 실행시키는 것은 쉽지 않다. 본 연구에서는 리눅스 클러스터에서 효과적으로 병렬 MPI 프로그램을 실행시키기 위해, 메시지 교환 정보를 활용하여 통신에 참여하는 프로세스들이 동시에 스케줄 되는 기법을 제안하고 실제 구현을 통해 성능을 살펴보았다. NPB 병렬 벤치마크의 수행을 통해 측정한 결과에 따르면, 통신량이 높은 프로그램에서 33-56%의 실행 시간 감소 효과를 보였다.

For efficient message passing of Parallel programs, it is required to schedule the involved two processes at the same time which are executed on different nodes, that is called 'co-scheduling' However, each node of cluster systems is built on top of general purpose multitasking OS. which autonomously manages local Processes. Thus it is not so easy to co-schedule two (or more) processes in such computing environment. Our work proposes a co-scheduling scheme for MPI-based parallel programs which exploits message exchange information between two parties. We implement the scheme on Linux cluster which requires slight kernel hacking and MPI library modification. The experiment with NPB parallel suite shows that our scheme results in 33-56% reduction in the execution time compared to the typical scheduling case. and especially better Performance in more communication-bound applications.

키워드