배치 작업 스케줄러는 클러스터 환경에서 구성된 계산 자원을 인지하고 순서에 맞게 효율적으로 작업을 배치하는 역할을 수행한다. 클러스터내의 한정된 가용자원을 효율적으로 사용하기 위해서는 사용자 작업의 특성을 분석하여 반영하여야 하는데 이를 위해서는 다양한 스케줄링 알고리즘을 파악하고 해당 시스템 환경에 맞게 적용하는 것이 중요하다. 대부분의 스케줄러 소프트웨어는 전체 관리 대상의 자원 명세와 시스템의 상태뿐만 아니라 작업 제출부터 종료까지 다양한 사용자의 작업 수행 환경을 반영하게 된다. 또한 작업 수행과 관련한 다양한 정보 가령, 작업 스크립트, 환경변수, 라이브러리, 작업의 대기, 시작, 종료 시간 등을 저장하게 된다. 본 연구에서는 배치 스케줄러를 통한 작업 수행과 관련된 정보를 통해 사용자의 작업 성공률, 수행시간, 자원 규모 등의 스케줄러의 수행 로그를 분석하여 문제점을 파악하였다. 향후 이 연구를 바탕으로 자원의 활용률을 높임으로써 시스템을 최적화할 수 있다.
배치 작업 스케줄러는 클러스터 환경에서 구성된 계산 자원을 인지하고 순서에 맞게 효율적으로 작업을 배치하는 역할을 수행한다. 클러스터내의 한정된 가용자원을 효율적으로 사용하기 위해서는 사용자 작업의 특성을 분석하여 반영하여야 하는데 이를 위해서는 다양한 스케줄링 알고리즘을 파악하고 해당 시스템 환경에 맞게 적용하는 것이 중요하다. 대부분의 스케줄러 소프트웨어는 전체 관리 대상의 자원 명세와 시스템의 상태뿐만 아니라 작업 제출부터 종료까지 다양한 사용자의 작업 수행 환경을 반영하게 된다. 또한 작업 수행과 관련한 다양한 정보 가령, 작업 스크립트, 환경변수, 라이브러리, 작업의 대기, 시작, 종료 시간 등을 저장하게 된다. 본 연구에서는 배치 스케줄러를 통한 작업 수행과 관련된 정보를 통해 사용자의 작업 성공률, 수행시간, 자원 규모 등의 스케줄러의 수행 로그를 분석하여 문제점을 파악하였다. 향후 이 연구를 바탕으로 자원의 활용률을 높임으로써 시스템을 최적화할 수 있다.
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 characteristic...
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.
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.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
높은 확장성과 추가적인 플러그인을 통해 다양한 기능을 제공하고 있으며 가속 프로세서(GPU, PHI)의 기능도 일부 지원한다. SLURM은 Quadrics RMS에서 영감을 받아서 개발되었으며 대 규모 슈퍼컴퓨팅 센터들의 요구사항을 충족시키는 것을 목표로 삼고 있다. SLURM의 핵심 요소는 slurmctld라는 컨트롤 데몬이며 가용자원의 모니터링과 배차작업 스케줄링을 담당한다.
다른 작업과의 상호 작용은 체크하지 않 으며 다른 작업은 지연될 수도 있다. 목적은 큐 목록의 순서를 고려하여 현재 사용률을 최대한 향상시키는 것으로 Conservative 알고리즘과 달리 작업이 큐에 들어갈 때 마다 전 체 목록을 확인해서 여유 자원이 확보되면 백필을 수행하게 된다. <표 3>은 Easy Backfilling 알고리즘을 나타내고 있다.
본 논문에서는 클러스터 환경에서 배치작업을 수행하기 위한 스케줄러 최적화 연구를 수행하였다. 작업이 수행되는 환경을 스케줄러는 반영하고 작업 요구사항에 맞춰 공평하게 분배 해야 한다.
클러스터 환경을 구성하는 계산노드들에게 작업을 지시하고, 그 중 장애가 있는 시스템을 구분하는 것, 그리고 서버들간에 통신을 관리하는 기능이 스케줄러의 대표적인 특징이라 할 수 있다. 본 연구에서는 우선 대표적으로 사용되고 있는 스케줄러의 솔루션들을 조사하였다. 널리 사용되는 클러스터 배치 시스템들로는 Moab, Oracle Grid Engine, Portable Batch System, LoadLeveler, Condor, OAR, Platform LSF 등이 있다.
본 연구에서는 특히 Tachyon2 시스템에서 점차 증가되고 있는 대규모 작업의 통계를 분석하여 사용자의 작업 성공률, 수행 시간, 자원 규모 등을 파악하였다. 통계 결과를 기반으로 Tachyon2에서 발생하는 자원의 단편화를 줄이기 위해 백필링 스케줄링 알고리즘을 연구하였다.
또한 한 노드에 하나의 작업만이 실행될 수 있도록 보장하는 배타적 노드 할당 정책을 기본적으로 적용하고 있다. 이 는 단일 노드에서 두 작업 이상이 수행될 때 서로 다른 자원 사 용특징에 따라 발생할 수 있는 간섭에 따른 성능 저하를 막고자 하였다. (그림 2)는 Tachyon2 시스템에서 수행된 자원규모에 따른 작업개수 분포를 나태내고 있다.
본 연구에서는 특히 Tachyon2 시스템에서 점차 증가되고 있는 대규모 작업의 통계를 분석하여 사용자의 작업 성공률, 수행 시간, 자원 규모 등을 파악하였다. 통계 결과를 기반으로 Tachyon2에서 발생하는 자원의 단편화를 줄이기 위해 백필링 스케줄링 알고리즘을 연구하였다.
제안 방법
오라클에서 인수된 이후 기존의 오픈 소스를 이용하여 만든 것이 OGS 즉 Open Grid Scheduler이다. 그 후 Grid Engine 부문을 Univa에 매각하였다.
가령, 작업 작업의 수행시간, 개수, 사용자의 제한, 작업 스크립트의 오류, 라이브러리의 사용 여부 등을 필터링 하여 가용 리소스를 적절하게 사용할 수 있게 하는 기능들은 시스템 자원을 보다 효율적으로 활용할 수 있게 한다. <표 1>은 위에 언급한 대표적인 HPC 기반의 스케줄러의 특성과 기능적 요소들을 나열하고 비교하였다[4].
클러스터 환경을 구성하고 배치 형태의 작업을 관리하기 위해서는 위와 같은 여러 환경의 특성을 반영하여 스케줄러를 선택하게 된다. 이에 본 연구에서는 대표적인 스케줄러 소프트웨어를 선별하여 조사하고 특징을 나열하였다. 이후, 자원 분배의 효율성을 재고하기 위해 스케줄링 알고리즘을 연구하고 나아가 KISTI의 슈퍼컴퓨터 4호기 Tachyon2 시스템에서 추출한 사용자 작업 수행 관련 정보들을 분석하였다[3].
이중 2,000 코어 이상의 대규모 자원 사용에 대해 2015년 1월부터 2017년 7월까지 월별 작업 수행개수를 구분하였다. (그림 3)는 대규모 작업수행 통계를 보여주고 있다.
이에 본 연구에서는 대표적인 스케줄러 소프트웨어를 선별하여 조사하고 특징을 나열하였다. 이후, 자원 분배의 효율성을 재고하기 위해 스케줄링 알고리즘을 연구하고 나아가 KISTI의 슈퍼컴퓨터 4호기 Tachyon2 시스템에서 추출한 사용자 작업 수행 관련 정보들을 분석하였다[3]. 이 데이터를 통해서 사용자의 작업 성공률, 수행시간, 자원 규모 등을 파악 할 수 있으며 선행된 스케줄링 알고리즘 적용을 통해 최적화할 수 있음을 인지할 수 있다.
대상 데이터
본 논문에서 스케줄링 최적화를 위해 우선 Tachyon2 작업로 그를 분석하였다. Tachyon2 시스템은 계산노드 당 8코어(쿼드 코어 2소켓 장착) 3,200대로 총 코어개수가 25,600개로 구성되 어 있다.
후속연구
향후 Tachyon2 시스템에 스케줄링 알고리즘을 적용하고 작업 수행 내역을 분석하는 연구를 지속, 반복적으로 수행하고자 한다. 이를 통해 자원 활용을 최적화할 수 있으며 전체적인 사용자 작업 대기시간 또한 줄일 수 있다.
질의응답
핵심어
질문
논문에서 추출한 답변
클러스터 컴퓨팅이란 무엇인가?
클러스터 컴퓨팅은 서버를 여러 대 묶어서 하나의 장비처럼 구성하는 것이다. 클러스터 환경을 구성하는 계산노드들에게 작업을 지시하고, 그 중 장애가 있는 시스템을 구분하는 것, 그리고 서버들간에 통신을 관리하는 기능이 스케줄러의 대표적인 특징이라 할 수 있다.
FCFS 방식이 공정성을 보장하긴 하나 규모가 커질수록 효율성에 제한이 있는 이유는?
FCFS는 작업 수행 순서의 공정성(Fairness)을 보장하는 가장 좋은 방식이기는 하나 계산자원의 규모가 커질수록 자원을 효율적으로 사용하는데 제한이 있다. 왜냐하면 각 작업마다 요구하는 자원의 규모가 달라 실제 가용자원이 사용되지 못하고 단편화가 발생할 수 있기 때문이다. 이런 문제를 해결하기 위해 단편화(Fragmentation)된 자원에 맞는 작은 작업을 우선적으로 배치하는 방식인 SJF(Shortest Job First)은 자원의 활용성을 높여 전체적인 성능을 향상을 가져올 수 있다.
백필 스케줄링은 어떠한 장점이 있는가?
백필 스케줄링(Backfill Scheduling)은 자원 사용량이 큰 선행 작업으로 인해 작은 작업이 수행되지 못할 때 우선 수행할 수 있도록 순서를 재조정하는 스케줄링 방식으로 작업의 공정성 과 성능 향상을 가져올 수 있다. 백필 스케줄링에서는 각 작업의 요구 수행시간이 반드시 명시되어야 한다.
참고문헌 (13)
He, Libo, et al., "A Review of Resource Scheduling in Large-Scale Server Cluster", International Conference on Knowledge Management in Organizations. Springer, Cham, pp. 494-505, 2017.
J.H. Abawajy, "An efficient adaptive scheduling policy for high-performance computing", Original Research Article Future Generation Computer Systems, Vol 25, Issue 3, pp.364-370, Mar 2009.
National Institute of Supercomputing and Networking, KISTI, Available: http://www.nisn.re.kr/.
Reuther, Albert, et al. "Scalable system scheduling for HPC and big data", Journal of Parallel and Distributed Computing 111, pp.76-92, 2017.
Templeton, D., "A Beginner's Guide to Sun Grid Engine 6.2", Whitepaper of Sun Microsystems, July 2009.
C. Chaubal, "Scheduler Policies for Job Prioritization in the Sun N1 Grid Engine 6 System", Technical report, Sun BluePrints Online, Sun Microsystems, Inc., Santa Clara, CA, USA.
Zhou, Xiaobing, et al., "Exploring distributed resource allocation techniques in the slurm job management system", Illinois Institute of Technology, Department of Computer Science, Technical Report, 2013.
KLUSACEK, Dalibor; CHLUMSKY, Vaclav; RUDOVA, Hana, "Planning and optimization in TORQUE resource manager", In: Proceedings of the 24th International Symposium on High-Performance Parallel and Distributed Computing. ACM, pp. 203-206, 2015.
Quintero, Dino, et al., "IBM Platform Computing Solutions Reference Architectures and Best Practices", IBM Redbooks, 2014.
Yuan, Yulai, et al., "Guarantee strict fairness and utilize prediction better in parallel job scheduling", IEEE Transactions on Parallel and Distributed Systems Vol. 25, No. 4, pp. 971-981, 2014.
Feitelson, D. G., & Weil, A. M. A. (1998, April). Utilization and predictability in scheduling the IBM SP2 with backfilling. In Parallel Processing Symposium, 1998. IPPS/SPDP 1998. Proceedings of the First Merged International and Symposium on Parallel and Distributed Processing , IEEE. pp.542-546, 1998.
J. W. Yoon, T. Y. Hong, C. Y. Park, H.C. Yu, "Analysis of Batch Job log to improve the success rate in HPC Environment", International Conference on Convergence Technology, vol.2 No.1, pp.209-210, July,2013.
El-Sayed, N., & Schroeder, B., "Reading between the lines of failure logs: Understanding how HPC systems fail". In: Dependable Systems and Networks (DSN), 2013 43rd Annual IEEE/IFIP International Conference on, pp.1-12, June, 2013.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.