슬럼 워크로드 매니저

슬럼 워크로드 매니저()는 이전에는 자원 관리를 위한 단순 리눅스 유틸리티(, SLURM)로 알려졌으며, 간단히 슬럼(Slurm)이라고도 한다. 리눅스 및 유닉스 계열 커널을 위한 자유-오픈 소스 작업 스케줄러로, 전 세계의 많은 슈퍼컴퓨터와 컴퓨터 클러스터에서 사용된다.

슬럼은 세 가지 핵심 기능을 제공한다.
 사용자가 일정 시간 동안 작업을 수행할 수 있도록 자원(컴퓨터 노드)에 대한 독점적 또는 비독점적 액세스를 할당한다.
 할당된 노드 집합에서 메시지 전달 인터페이스(MPI)와 같은 병렬 작업을 시작, 실행 및 모니터링하기 위한 프레임워크를 제공한다.
 대기 중인 작업의 큐를 관리하여 자원에 대한 경합을 중재한다.

슬럼은 TOP500 슈퍼컴퓨터의 약 60%에서 사용되는 워크로드 매니저이다.

슬럼은 병렬 컴퓨터에서 작업 할당의 지역성을 최적화하기 위해 힐베르트 곡선 스케줄링 또는 팻 트리(fat tree) 네트워크 토폴로지에 기반한 최적 적합 빈 패킹 알고리즘(best-fit bin packing algorithm)을 사용한다.

 역사 
슬럼은 로렌스 리버모어 국립연구소, SchedMD, Linux NetworX, 휴렛 팩커드, 그룹 불이 협력하여 자유 소프트웨어 자원 관리자로 개발하기 시작했다. 첫 번째 배포는 2002년에 이루어졌다. 이는 소스가 공개되지 않은 Quadrics RMS에서 영감을 받았으며 유사한 구문을 공유한다. 이름은 퓨처라마에 등장하는 음료에서 따온 것이다. 전 세계적으로 250명 이상의 사람들이 이 프로젝트에 기여했다. 이후 많은 대형 컴퓨터 센터의 요구 사항을 충족할 수 있는 정교한 배치 스케줄러로 진화했다.

, 세계에서 가장 강력한 컴퓨터 목록인 TOP500에 따르면 슬럼은 상위 10개 시스템 중 절반 이상에서 워크로드 매니저로 사용되고 있다.

 구조 
슬럼의 설계는 약 100개의 선택적 플러그인을 갖춘 고도의 모듈식 구조이다. 가장 단순한 구성에서는 몇 분 안에 설치 및 구성이 가능하다. 더 정교한 구성은 회계(accounting), 자원 제한 관리 및 워크로드 우선순위 지정을 위한 데이터베이스 통합을 제공한다.

 특징 
슬럼의 특징은 다음과 같다:

 단일 장애점(SPOF) 없음, 백업 데몬, 결함 허용 작업 옵션
 높은 확장성 (IBM 세쿼이아의 100,000개 소켓에서 최대 100,000개의 독립적인 작업 스케줄링)
 고성능 (초당 최대 1,000건의 작업 제출 및 초당 600건의 작업 실행)
 자유-오픈 소스 소프트웨어 (GNU 일반 공중 사용 허가서)
 약 100개의 플러그인으로 고도의 설정 가능
 계층적 은행 계정을 통한 페어 쉐어(Fair-share) 스케줄링
 선점 및 갱(gang) 스케줄링 (병렬 작업의 시분할)
 회계 및 구성을 위한 데이터베이스 통합
 네트워크 토폴로지 및 노드 내 토폴로지(소켓, 코어 및 하이퍼스레드)에 최적화된 자원 할당
 고급 예약
 유휴 노드의 전원 차단 가능
 작업마다 다른 운영체제 부팅 가능
 범용 자원(예: 그래픽 처리 장치)에 대한 스케줄링
 작업 단계까지 내려가는 실시간 회계 (높은 CPU 또는 메모리 사용량을 보이는 특정 작업 식별)
 사용자 또는 은행 계정별 자원 제한
 작업별 전력 소비량 회계
 IBM Parallel Environment (PE/POE) 지원
 작업 배열(job arrays) 지원
 작업 프로파일링 (각 작업의 CPU 사용량, 메모리 사용량, 전력 소비, 네트워크 및 파일 시스템 사용량의 정기적 샘플링)
 정교한 다요소 작업 우선순위 지정 알고리즘
 MapReduce+ 지원
 과학 데이터 이동을 가속화하는 버스트 버퍼 지원
 이기종 범용 자원 지원
 종료 값에 따른 자동 작업 재대기 정책

 지원 플랫폼 
최근 슬럼 릴리스는 리눅스에서만 실행된다. 이전 버전은 FreeBSD, NetBSD, OpenBSD를 포함한 몇몇 다른 POSIX 기반 운영체제로 이식된 적이 있었으나, 현재 슬럼은 핵심 동작을 위해 Cgroups를 필요로 하므로 더 이상 가능하지 않다. 리눅스 이외의 운영체제를 실행하는 클러스터는 LPJS와 같은 다른 배치 시스템을 사용해야 한다. 슬럼은 다음과 같은 몇 가지 독특한 컴퓨터 아키텍처도 지원한다:
 20 페타플롭급 IBM 세쿼이아를 포함한 IBM BlueGene/Q 모델
 Cray XT, XE 및 Cascade
 32,000개의 인텔 아이비브리지 칩과 48,000개의 인텔 제온 파이 칩을 탑재하여 총 310만 개의 코어를 가진 33.9 페타플롭급 시스템인 텐허-2
 IBM Parallel Environment
 Anton

 라이선스 
슬럼은 GNU 일반 공중 사용 허가서 v2에 따라 사용할 수 있다.

 상용 지원 
2010년, 슬럼 개발자들은 표준 소스를 유지 관리하고 개발, 레벨 3 상용 지원 및 교육 서비스를 제공하는 SchedMD를 설립했다. 상용 지원은 Bull, Cray 및 Science + Computing(Atos의 자회사)에서도 받을 수 있다.

 사용법 
섬네일|슬럼은 작업의 여러 단계를 구분한다
slurm 시스템은 세 가지 주요 부분으로 구성된다:

 slurmctld: 단일 제어 노드에서 실행되는 중앙 제어 데몬 (선택적으로 장애 극복 기능 백업 포함)
 slurmd: 각 컴퓨팅 노드에서 실행되는 하나 이상의 데몬
 클라이언트: 주로 ssh를 통해 매니저 노드에 연결

클라이언트는 제어 데몬에 명령을 내릴 수 있으며, 제어 데몬은 이를 수락하고 컴퓨팅 데몬에 워크로드를 분배한다.

클라이언트의 주요 명령은 srun(대화형 작업 대기열 등록), sbatch(작업 대기열 등록), squeue(작업 대기열 출력) 및 scancel(대기열에서 작업 제거)이다.

작업은 배치 모드 또는 대화형 모드로 실행될 수 있다. 대화형 모드의 경우, 컴퓨팅 노드는 셸을 시작하고 클라이언트를 여기에 연결하여 작업을 실행한다. 사용자는 작업이 실행되는 동안 이를 관찰하고 상호작용할 수 있다. 일반적으로 대화형 작업은 초기 디버깅에 사용되며, 디버깅 후에는 동일한 작업이 sbatch를 통해 제출된다. 배치 모드 작업의 경우, stdout 및 stderr 출력은 나중에 확인하기 위해 일반적으로 텍스트 파일로 저장된다.

 같이 보기 
 클러스터용 작업 스케줄러 및 배치 큐잉
 네트워크 스케줄러
 베오울프 클러스터

 각주 

 더 읽어보기 

 
 
 
 

 외부 링크 
 
 Slurm 문서
 Slurm Workload Manager 아키텍처 구성 및 사용법
 Caltech HPC 센터: 작업 스크립트 생성기

분류:병렬 컴퓨팅
분류:클러스터 컴퓨팅
분류:C로 작성된 자유 소프트웨어
분류:GPL 라이선스 소프트웨어