[Linux] Slurm 스케줄러 활용법
by Heejin Do
slurm은 cluster server 상에서 작업을 관리하기 위한 프로그램으로, node간 통신을 통해 작업 management가 이루어진다. 이번 포스트에는 리눅스 환경에서 slurm 스케줄러를 활용하는 방법을 간단히 정리했다.
작업 스크립트 작성
클러스터에서 작업을 돌릴 때는 bash 스크립트(.sh 형태)를 만들어서 실행시키는게 편하다.
bash 스크립트에서 slurm 명령은 sbatch
를 통해 이루어진다.
1. sbatch
#sbatch 뒤에 옵션을 달면, slurm 명령어가 실행된다.
-J
: 작업의 이름 지정 // 이름을 명시하지 않으면 작업 이름은 작업 스크립트명이 됨(이름.sh)-o
: 작업 스크립트의 출력 파일을 지정 // %j는 작업의 고유번호를 의미-p
: 파티션 이름-t
: 작업 시간 설정
2. GPU 사용 설정
1) gpu 개수 설정
2) 사용할 노드 지정
3) task, node 설정
3. 관리자 옵션
- 관리자가 이런 옵션이 포함되도록 설정 한 경우, 작업 스크립트에도 명시해줘야 함
작업 제출, 확인, 삭제
1. 작업 제출
작업 제출 또한 sbatch 명령어를 통해 이루어진다. 앞서 만들어둔 파일명.sh
파일을 sbatch 파일명.sh
을 이용해 제출한다.
2. 작업 확인
현재 던져진 작업 목록을 확인하기 위해서는 squeue 명령어를 이용하면 된다.
JOBID
: 제출한 작업의 식별 번호PARTITION
: 현재 작업이 제출된 파티션의 이름 (slurm에서의 partition은 SGE에서 queue와 같은 개념임)NAME
: 작업의 이름USER
: 작업을 제출한 리눅스 계정명STATE
: 현재 작업의 상태 (running: 작업 실행 중, pending: 기다리는 상태)NODELIST
: 이 작업을 수행될 수 있도록 할당된 컴퓨터의 노드를 의미TRES_PER_NODE
: 이 작업에 할당된 gpu 수TIME_LIMIT
: 이 작업에 걸린 제한시간 (작업 가능 한 최대 시간)TIME_LEFT
: 작업 가능한 남은 시간
3. 작업 삭제
4. 작업 내용 구체적으로 확인
Subscribe via RSS