HPC Solution 아렌티어를 소개합니다.

KR
KR EN JP
SEARCH
인사이트
Slurm vs LSF vs Kubernetes 스케줄러 비교
  • 소식
  • 2024.01.03
 
 

작업 예약(Job scheduling)의 정의와 필요성

 

작업 예약(Job scheduling)은 HPC시스템이 실행 중인 작업과 리소스를 결정하는 프로세스입니다. HPC 시스템에서는 수천 개의 작업과 노드가 동시에 운영될 수 있습니다. 이러한 상황에서 작업 스케줄러가 없다면 사용자는 수행하려는 작업을 사용 가능한 리소스와 제대로 일치시킬 수 없습니다.

 

HPC 시스템은 작업 스케줄러를 사용하여 작업 운영을 관리합니다. 스케줄러는 작업을 수락, 예약 및 모니터링하는 프로그램입니다. 이러한 유틸리티를 사용하면 간단하게 수동 혹은 자동으로 작업을 시작하고 관리할 수 있습니다. 또한 관리 및 모니터링은 그래픽 사용자 인터페이스(GUI) 또는 명령줄 인터페이스(CLI)를 통해 수행됩니다.

 

작업 스케줄러의 목적

 

- 작업이 대기열에서 대기하는 시간을 최소화할 수 있습니다.
- 가능한 한 많은 작업이 동시에 실행되도록 작업 처리량을 최대화합니다.
- ROI를 극대화하기 위해 리소스 활용도 최적화합니다.

 

스케줄러가 효과적으로 작동할 때 이러한 도구는 HPC 시스템으로 인해 발생하는 기술적 부채를 꾸준히 줄이는 데 도움이 됩니다. 이는 대규모 HPC 시스템을 구현하는 데 필요한 비용을 고려하면 필수적입니다. 또한 스케줄러는 워크로드가 최대한 빨리 완료되도록 보장하여 작업 결과를 기다리는 작업 병목 현상을 줄여줍니다. 기계 학습의 경우 이는 더 빠른 모델 훈련과 더 빠른 출시 시간을 의미합니다.

 

 

확장성이 뛰어난 오픈 소스 스케줄러 - 슬럼(Slurm)

 

슬럼(Slurm)은 Linux 기반 클러스터에서 사용할 수 있는 오픈 소스 작업 예약 도구입니다. 확장성이 뛰어나고, 내결함성이 있으며, 독립형으로 설계되었습니다. HPC 사용자를 위해 Slurm은 다음 작업을 수행합니다.

 

- 컴퓨팅 노드에 사용자를 할당합니다. 이 액세스는 비독점적이거나 공유 리소스를 사용할 수 있으며 리소스가 한 명의 사용자로 제한될 수 있습니다.
- 할당된 노드에서 작업을 시작, 수행 및 모니터링하기 위한 프레임워크를 제공합니다. 일반적으로 작업은 여러 노드에서 실행되는 병렬 작업으로 관리됩니다.
- 보류 중인 작업의 대기열을 관리하고 다음 노드에 할당할 작업을 결정합니다.

 

Slurm 스케줄러 아키텍처는 사용자의 HPC 시스템에 맞춰 운영할 수 있도록 모듈식 접근 방식을 기반으로 합니다. 주요 구성 요소는 중앙 집중식 관리자(slurmctld)로 작업 및 리소스를 모니터링합니다. 이 관리자는 페일오버 복사본을 통해 백업되어 지속적인 작업을 보장합니다.

시스템의 각 계산 노드에는 관리자가 제어하는 데몬(slurmd)이 있습니다. 이 데몬은 리모트 셸과 같은 기능을 하며 다른 노드와 관리자에게 계층적이고 내결함성이 있는 통신을 제공합니다.

 

 

IBM Load Sharing Facility - LSF

 

LSF(IBM Platform Load Sharing Facility)는 분산형 고성능 컴퓨팅(HPC) 배치에서 작업량 관리를 위해 설계된 플랫폼입니다. LSF 세션 스케줄러는 한 세트의 리소스에서 작업 배치를 실행할 수 있도록 해주는 플랫폼의 스케줄러입니다. 계층적 스케줄링 모델을 기반으로 작업의 저지연 실행을 제공합니다.

 

LSF 세션 스케줄러는  파라메트릭 실행이 포함된 작업 배열이나 목록 프로세스와 같은 단기 작업을 관리하기 위해 설계되었습니다. 혼합 길이 이상의 작업의 경우 작업 청킹과 같은 기존 작업 생성, 스케줄링 및 시작 방법을 사용하는 것이 좋습니다.

 

LSF 세션 스케줄러는 의 이점은 하나의 LSF 작업으로 여러 작업을 제출할 수 있다는 것입니다. 이 기능은 작업 스케줄링 결정을 해야 하는 횟수를 줄여 표준 스케줄러의 성능과 처리량을 향상시킵니다. 또한 세션 스케줄러를 구현하면 다음과 같은 이점이 있습니다.

 

세션 스케줄러 구현 시 이점

 

- 짧은 작업의 대기 시간을 최소화합니다.
- 시스템 성능 및 클러스터 활용도 최적화합니다.
- 설정된 LSF 정책을 기반으로 자원을 할당합니다.
- 기존 작업 시작자, 리소스 제한, 사전 및 사후 실행 프로그램을 유지합니다.
- 사용자당 50,000개 이상의 작업과 수천 명의 사용자를 관리할 수 있습니다.

 

LSF 세션 스케줄러를 사용하면 프로세스(ssched)가 병렬 작업과 유사하게 실행되며 동적으로 예약됩니다. 생성된 각 프로세스는 하나의 작업 부하를 담당하며 할당된 리소스로 제한됩니다. 작업 중에 스케줄러는 배치가 완료될 때까지 할당된 실행 에이전트에 작업을 작업 배열 또는 작업 정의 파일로 디스패치합니다.  

 

 

오픈 소스 오케스트레이션 Kubernetes 스케줄러

 

Kubernetes는 컨테이너 기반 워크로드를 위한 인기 있는 오픈 소스 오케스트레이션 솔루션입니다. Kubernetes를 사용하면 이러한 워크로드를 기존 HPC 클러스터링 방법과 유사한 방식으로 효과적으로 관리할 수 있습니다. 하지만 Kuberenetes만으로는 배치 스케줄링 및 갱 스케줄링과 같은 Slurm의 모든 스케줄링 기능을 제공하지 않습니다.

 

Kubernetes는 마스터가 제어하는 ​​노드 클러스터(물리적 또는 가상 머신)를 기반으로 합니다. 각 노드는 Pod(컨테이너) 그룹을 호스팅합니다. 이러한 포드는 노드의 리소스를 공유하고 로컬 네트워크에 존재합니다. 이 네트워크를 사용하면 격리된 워크로드나 애플리케이션을 계속 포함하면서 포드가 서로 통신할 수 있습니다.

 

 

HPC 및 AI 워크로드에 적합한 스케줄러 선택

 

전통적으로 HPC 시스템은 주로 시뮬레이션을 실행하는 데 사용되었습니다. 즉 복잡한 시스템을 모델링하여 실제 사건에 대한 예측을 수행하는 데 사용된 것입니다.

 

그러나 HPC 기술이 발전함에 따라 클러스터링된 리소스에서 실행되는 워크로드 유형이 크게 달라지기 시작했습니다. 최근에는 머신러닝 모델 교육, 분산 분석 수행, 스트리밍 데이터 처리 등이 HPC 시스템을 요구하기도 합니다. 이러한 흐름 속에서 워크로드를 최적화하기 위한 다양한 유형의 스케줄링에 대한 요구를 발생시키기도 했습니다.

 

이러한 때 자신에게 적합한 스케줄러를 선택하려면 각 스케줄러의 기능을 비교하고 요구 사항에 가장 적합한 스케줄러를 결정해야 합니다.

 

슬럼

 

- 분산된 배치 중심 HPC 워크로드를 관리하는 데 가장 널리 사용되는 스케줄러
- 일반적인 HPC 프레임워크와 잘 통합됨
- 단, 컨테이너화된 워크로드의 경우 사용 및 유지 관리가 복잡함

 

LSF

 

- 유연한 리소스 공유를 통해 다양하고 유한한 분산 워크로드 실행에 최적화
- 적시성, 선호도, 토폴로지 등의 요소에 민감함
- 단, 컨테이너화된 워크로드의 경우 사용 및 유지 관리가 복잡함

 

쿠버네티스 큐브 스케줄러

 

- 유연하고 컨테이너화된 워크로드를 위한 최적의 솔루션
- 클라우드 네이티브 생태계의 일부
- 일반적인 컨테이너 기반 기술과 잘 통합됨
- 단, 토폴로지 인식 및 배치 시스템 기능과 같은 Slurm 및 LSF의 주요 일정 기능을 위한 플러그인이 필요함
 
 

[참고자료]

 
 
클루닉스 뉴스레터
받아보세요!
클라우드, HPC, 인공지능 (AI) 등의
트랜드 뉴스를 매주 만나보세요. 뉴스레터 구독하기
퀵메뉴 모바일 여닫기 한단 아래로 맨 위로

현재 브라우저에서는 지원하지 않는 사이트입니다. 아래의 다른 브라우저를 다운받아 사용해주세요.