Study of Scheduling Optimization Through the Batch Job Logs Analysis 윤 준 원1 · 송 의 성2* 1한국과학기술정보연구원 슈퍼컴퓨팅본부 2부산교육대학교 컴퓨터교육과
Total Page:16
File Type:pdf, Size:1020Kb
디지털콘텐츠학회논문지 Journal of Digital Contents Society JDCS Vol. 18, No. 7, pp. 1411-1418, Nov. 2017 배치 작업 로그 분석을 통한 스케줄링 최적화 연구 Study of Scheduling Optimization through the Batch Job Logs Analysis 1 2* 윤 준 원 · 송 의 성 1한국과학기술정보연구원 슈퍼컴퓨팅본부 2부산교육대학교 컴퓨터교육과 JunWeon Yoon1 · Ui-Sung Song2* 1Department of Supercomputing Center, KISTI, Daejeon 34141, Korea 2*Department of Computer Education, Busan National University of Education, Busan 47503, Korea [요 약] 배치 작업 스케줄러는 클러스터 환경에서 구성된 계산 자원을 인지하고 순서에 맞게 효율적으로 작업을 배치하는 역할을 수행 한다. 클러스터내의 한정된 가용자원을 효율적으로 사용하기 위해서는 사용자 작업의 특성을 분석하여 반영하여야 하는데 이를 위해서는 다양한 스케줄링 알고리즘을 파악하고 해당 시스템 환경에 맞게 적용하는 것이 중요하다. 대부분의 스케줄러 소프트웨 어는 전체 관리 대상의 자원 명세와 시스템의 상태뿐만 아니라 작업 제출부터 종료까지 다양한 사용자의 작업 수행 환경을 반영하 게 된다. 또한 작업 수행과 관련한 다양한 정보 가령, 작업 스크립트, 환경변수, 라이브러리, 작업의 대기, 시작, 종료 시간 등을 저 장하게 된다. 본 연구에서는 배치 스케줄러를 통한 작업 수행과 관련된 정보를 통해 사용자의 작업 성공률, 수행시간, 자원 규모 등의 스케줄러의 수행 로그를 분석하여 문제점을 파악하였다. 향후 이 연구를 바탕으로 자원의 활용률을 높임으로써 시스템을 최 적화할 수 있다. [Abstract] The batch job scheduler recognizes the computational resources configured in the cluster environment and plays a role of efficiently arranging the jobs in order. In order to efficiently use the limited available resources in the cluster, it is important to analyze and characterize the characteristics of user tasks. To do this, it is important to identify various scheduling algorithms and apply them to the system environment. Most scheduler software reflects the user's work environment, from job submission to termination, as well as the state of the inventory and system status of the entire managed object. It also stores various information related to task execution, such as job scripts, environment variables, libraries, wait for tasks, start and end times. In this paper, we analyze the execution log of the scheduler such as user 's success rate, execution time, and resource size through information related to job execution through batch scheduler. Based on this, it can be used as a basis to optimize the system by increasing the utilization rate of resources. 색인어 : 고성능컴퓨팅, 배치작업, 스케줄링, 로그분석, 최적화 Key word : HPC, Batch Job, Scheduling, Log analysis, Optimization http://dx.doi.org/10.9728/dcs.2017.18.7.1411 Received 18 October 2017; Revised 20 November 2017 Accepted 25 November 2017 This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons. *Corresponding Author; Ui-Sung Song org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the Tel: +82-051-500-7326 original work is properly cited. E-mail: [email protected] Copyright ⓒ 2017 The Digital Contents Society 1411 http://www.dcs.or.kr pISSN: 1598-2009 eISSN: 2287-738X 디지털콘텐츠학회논문지(J. DCS) Vol. 18, No. 7, pp. 1411-1418, Nov. 2017 Ⅰ. 서 론 기본적으로 오픈 소스 개발 모델을 택해 소스 코드가 공개되어 있다. 오라클에서 인수된 이후 기존의 오픈 소스를 이용하여 만 배치 작업 스케줄러는 자원 관리자(Resource Manager, RM), 든 것이 OGS 즉 Open Grid Scheduler이다. 그 후 Grid Engine 부 분산 자원 관리자(Distributed Resource Manager, DRM), 분산자 문을 Univa에 매각하였다. 원 관리 시스템(Distributed Resource Management System, ORACLE은 무료 바이너리 버전 배포를 중단하고 Sun DRMS), 워크로드 관리시스템(Workload Management System, Industry Standards Source License(SISSL) 라이선스로 배포되던 WMS) 또는 작업 스케줄러(Job Scheduler)라 불린다[1]. 소스코드의 배포도 역시 중단하였다. 스케줄러가 제공해야하는 기본적인 특징은 자원의 특성을 SGE는 크게 마스터 서버와 계산수행노드로 나뉜다. 일반적 정확하게 반영해야 한다는 점이다. 즉, 작업 수행에 요구되는 으로 마스터 서버는 실제 작업을 수행하는 대신 전체 클러스터 다양한 계산자원의 리소스 가령 라이선스, CPU 아키텍처나 메 에 작업을 분배하고, 클러스터 상태를 관리하는 역할을 수행한 모리 나아가 최근 화두가 되는 GPU나 PHI와 같은 매니코어 기 다. 계산수행노드는 실제 작업을 수행하는 서버로 마스터 서버 반의 가속 시스템까지도 관리 대상에 포함 되어야 한다. 자원에 의 지시를 받아 작업을 수행한다. 계산수행노드는 실제 일하는 대한 인지이후 자원 분배가 공평하게 배분되기 위한 Fair-Share 서버이므로 성능이 중요한 반면 마스터서버는 전체 클러스터 정책, 우선순위가 높은 작업에 대한 선점(preemption) 지원, 자 의 상태를 볼 수 있는 유일한 통로이므로 안정성이 중요하다. 원의 확장성 보장, 다양한 시스템 환경에 대한 지원 등의 요구 ■ SLURM 사항들 또한 충족시켜야 한다[2]. SLURM은 LLNL(로렌스 리버모아 국립연구소)에서 시작된 클러스터 환경을 구성하고 배치 형태의 작업을 관리하기 위 오픈소스 배치 시스템으로 2010년 개발자들이 SchedMD를 설 해서는 위와 같은 여러 환경의 특성을 반영하여 스케줄러를 선 립하여 지속적인 개발과 배포를 진행하는 프로젝트이다. Top 택하게 된다. 이에 본 연구에서는 대표적인 스케줄러 소프트웨 500 슈퍼컴퓨팅 사이트에서 점차 비중을 확대하고 있다. 높은 어를 선별하여 조사하고 특징을 나열하였다. 이후, 자원 분배 확장성과 추가적인 플러그인을 통해 다양한 기능을 제공하고 의 효율성을 재고하기 위해 스케줄링 알고리즘을 연구하고 나 있으며 가속 프로세서(GPU, PHI)의 기능도 일부 지원한다. 아가 KISTI의 슈퍼컴퓨터 4호기 Tachyon2 시스템에서 추출한 SLURM은 Quadrics RMS에서 영감을 받아서 개발되었으며 대 사용자 작업 수행 관련 정보들을 분석하였다[3]. 이 데이터를 규모 슈퍼컴퓨팅 센터들의 요구사항을 충족시키는 것을 목표 통해서 사용자의 작업 성공률, 수행시간, 자원 규모 등을 파악 로 삼고 있다. SLURM의 핵심 요소는 slurmctld라는 컨트롤 데 할 수 있으며 선행된 스케줄링 알고리즘 적용을 통해 최적화할 몬이며 가용자원의 모니터링과 배차작업 스케줄링을 담당한 수 있음을 인지할 수 있다. 다. 사용자, 작업 및 수행정보는 slurmdbd를 통해 구현되는데 보통 MySQL과 같은 데이터베이스를 통해 저장한다. SLURM Ⅱ. 관련 연구 은 추가적인 기능들을 확장하기 위한 많은 선택적인 플러그인 을 가지는 모듈 구조로 되어 있고 Maui와 같은 다른 스케줄러 클러스터 컴퓨팅은 서버를 여러 대 묶어서 하나의 장비처 와 통합될 수 있도록 개발되었다. SLURM은 매우 높은 확장성 럼 구성하는 것이다. 클러스터 환경을 구성하는 계산노드들에 으로 인해서 아주 대규모의 페타급 슈퍼컴퓨터에 적용되고 있 게 작업을 지시하고, 그 중 장애가 있는 시스템을 구분하는 것, 다[7]. 그리고 서버들간에 통신을 관리하는 기능이 스케줄러의 대표 ■ TORQUE 적인 특징이라 할 수 있다. 본 연구에서는 우선 대표적으로 사 TORQUE(Terascale Open-source Resource & QUEue 용되고 있는 스케줄러의 솔루션들을 조사하였다. 널리 사용되 Manager)는 분산 리소스 관리자로 OpenPBS 프로젝트를 기반 는 클러스터 배치 시스템들로는 Moab, Oracle Grid Engine, 으로 하는 커뮤니티 프로젝트이다. TORQUE는 기본적인 스케 Portable Batch System, LoadLeveler, Condor, OAR, Platform 줄링 기능만을 제공하며 오픈소스 Maui 클러스터 스케줄러 또 LSF 등이 있다. 대표적인 상용 제품으로는 Platform LSF(IBM), 는 상용인 Moab 워크로드 매니저와 통합하여 사용된다. 지속 Univa Grid Engine, Moab(Adaptive Computing), PBSPro(Altair) 적인 커뮤니티 패치를 수행하고 있으며 확장성 개선, fault 등이 잘 알려져 있다. 오픈소스 제품으로는 SGE(SoG&OGS), tolerance 와 같은 다양한 기능 개발을 위해 전 세계의 많은 SLURM, TORQUE/Maui 등이 있다[4]. HPC 기관들이 참여하고 있다. 중소규모 클러스터들에서 배치 ■ Grid Engine(GE) 시스템으로 많이 사용하고 있다. Sun Grid Engine(SGE)는 가장 널리 사용된 스케줄러 솔루션 Maui 스케줄러는 비록 새로운 개발은 중단된 상태이기는 하 으로 다양한 기능과 안정성을 제공하였다. SUN은 빈번하게 지만, Adaptive computing 사에 의해서 유지 및 지원된다. 차세 버그와 추가적인 기능에 대한 패치를 매년마다 주기적으로 업 대 상용 스케줄러는 Moab Cluster suite의 일부이며 Maui 스케 데이트를 해왔다. SUN이 ORACLE에 합병되면서 Oracle Grid 줄러에서 많은 기본 개념을 차용하여 개발되었다. Maui의 개발 Engine으로 변경되었고 약자도 SGE에서 OGE로 변경되었다. 자들은 오프소스 라이선스 정책을 따르고 있으며, 상업적 사용 은 허용하지 않고 있다. TORQUE/Maui의 메인 관리 노드에는 http://dx.doi.org/10.9728/dcs.2017.18.7.1411 1412 배치 작업 로그 분석을 통한 스케줄링 최적화 연구 pbs_server 데몬과 maui 스케줄러 데몬이 설치되어 동작하며, 등록되고 대기 과정을 거쳐 계산자원이 확보되면 작업이 수행 각 계산 노드에는 pbs_mon 데몬이 구동된다[8]. 되게 된다. 큐에 등록된 작업들은 먼저 제출된 작업이 먼저 수 ■ LSF 행되는 FCFS(First Come First Served) 방식을 기본 정책으로 할 LSF(Platform Load Sharing Facility는 HPC 분야의 분산 워크 당된다. FCFS는 작업 수행 순서의 공정성(Fairness)을 보장하는 로드 관리 플랫폼인 작업 스케줄러이며 다양한 아키텍처를 지 가장 좋은 방식이기는 하나 계산자원의 규모가 커질수록 자원 원하고 Unix 또는 Windows 시스템에서 배치 작업을 실행하는 을 효율적으로 사용하는데 제한이 있다. 왜냐하면 각 작업마다 데 사용할 수 있다. LSF는 Toronto 대학의 Utopia 연구 프로젝 요구하는 자원의 규모가 달라 실제 가용자원이 사용되지 못하 트를 기반으로 시작되었다. 2007년에 Platform은 Platform Lava 고 단편화가 발생할 수 있기 때문이다. 이런 문제를 해결하기 를 출시했으며 Platform Lava 는 LSF 릴리스의 구 버전을 기반 위해 단편화(Fragmentation)된 자원에 맞는 작은 작업을 우선적 으로 하는 LSF의 단순화 된 버전으로 GNU General Public 으로 배치하는 방식인 SJF(Shortest Job First)은 자원의 활용성 License v2에서 라이선스를 받았고 2011 년에 중단되었다가 을 높여 전체적인 성능을 향상을 가져올 수 있다. 하지만 이 방 2012년 Platform Computing은 IBM에 인수되었다[9]. 식은 공정성을 보장하지 못하는 단점을 지닌다. 따라서 스케줄 링 정책은 자원 규모, 작업 특성 등을 고려하여 FCFS, SJF 두 가 클러스터 환경을 구성하고 다양한 사용자의 작업을 배치형 지를 혼용하는 방식으로 사용된다[10]. 태로 수행하기 위해서는 스케줄러의 특성을 파악하고 시스템 백필 스케줄링(Backfill Scheduling)은 자원 사용량이 큰 선행 환경에 맞게 적용하여야 한다. 가령, 작업 작업의 수행시간, 개 작업으로 인해 작은 작업이 수행되지 못할 때 우선 수행할 수 수, 사용자의 제한, 작업 스크립트의 오류, 라이브러리의 사용 있도록 순서를 재조정하는 스케줄링 방식으로 작업의 공정성 여부 등을 필터링 하여 가용 리소스를 적절하게 사용할 수 있게 과 성능 향상을 가져올 수 있다. 백필 스케줄링에서는 각 작업 하는 기능들은 시스템 자원을 보다 효율적으로 활용할 수 있게 의 요구 수행시간이 반드시 명시되어야 한다. 기존에 사용되는 한다. <표 1>은 위에 언급한 대표적인 HPC 기반의 스케줄러의 백필 스케줄링에는 다음과 같이 크게 두 가지 방식이 있다[11]. 특성과 기능적 요소들을 나열하고 비교하였다[4]. 1) Conservative Backfilling 표 1. 스케줄러 기능적 특징 Conservative Backfilling 알고리즘은 초기 버전으로 스케줄 Table 1. Functional features of the scheduler 링의 기본 원칙인 FCFS 방식을 고수하면서 후순위에 있는 작 Grid 업 이 단편화 된 자원에 충족될 경우 우선 수행하게 된다. 이 Slurm Torque LSF Engine 알고리즘 수행을 위해서는 두 개의 데이터 구조를 가지게 되 Commercial, Commercial, License Open Source Commercial Open Source Open Source 는데 첫 번째는 큐 목록의 작업리스트와 실행 시작 시간을 저 Linux, OS Support Linux Linux Linux 장하는 리스트 구조와 두 번째로는 사용될 프로세서 사용량 Windows parallel and 프로파일이다.