728x90
왜 Slurm 기본 명령어를 익혀야 하는가
HPC/GPU 클러스터 운영이나 사용자 지원을 하다 보면 가장 많이 쓰는 Slurm 명령어가 바로 srun, sbatch, squeue, scancel입니다.
이 네 가지는 Slurm과 상호작용하는 기본 인터페이스로, Job 제출·상태 확인·취소의 핵심 역할을 합니다.
운영자는 단순히 명령어 문법만 아는 것이 아니라, 각 옵션의 의미와 자원 요청 방법, GPU 환경에서의 특화 사용법까지 숙지해야 사용자 요청에 빠르게 대응할 수 있습니다.
1. srun – 실시간(Job Interactive) 실행
srun은 Slurm에 Job을 제출하면서 바로 실행하는 명령어입니다.
단일 노드 테스트, 짧은 디버깅, GPU 메모리 확인 등에 유용합니다.
# CPU Job 예시
srun --nodes=1 --ntasks=4 --time=00:10:00 hostname
# GPU Job 예시
srun --gres=gpu:2 --time=00:30:00 nvidia-smi
주요 옵션
- --nodes: 필요한 노드 수
- --ntasks: 실행할 프로세스 수
- --gres=gpu:N: GPU 개수 요청
- --time=HH:MM:SS: 최대 실행 시간
실무 팁
- GPU Job 디버깅 시 --pty bash로 대화형 세션 생성 가능
srun --gres=gpu:1 --time=01:00:00 --pty bash
2. sbatch – 배치(Job Batch) 제출
sbatch는 스크립트 파일을 Slurm 큐에 제출해 비동기 실행합니다.
대규모 HPC 작업, 장시간 Job, 반복 실행 Job에 사용됩니다.
sbatch job_script.sh
Job 스크립트 예시
#!/bin/bash
#SBATCH --job-name=gpu_test
#SBATCH --nodes=1
#SBATCH --gres=gpu:4
#SBATCH --time=02:00:00
#SBATCH --output=result_%j.log
module load cuda/12.2
nvidia-smi
주요 옵션
- --job-name: Job 이름
- --output: 표준 출력 로그 파일 (%j = Job ID)
- --error: 표준 에러 로그 파일
- --partition: 특정 파티션 지정
3. squeue – Job 상태 확인
squeue는 Slurm에 제출된 Job 목록과 상태를 보여줍니다.
squeue
주요 컬럼
- JOBID: Job 식별 번호
- ST: 상태(PD=Pending, R=Running, CG=Completing, F=Failed)
- TIME: 실행 시간
- NODELIST: 실행 노드
유용한 옵션
# 특정 사용자 Job만 보기
squeue -u username
# GPU Job만 보기
squeue --Format=jobid,name,state,time,nodelist:50
4. scancel – Job 취소
scancel은 실행 중이거나 대기 중인 Job을 취소합니다.
# Job ID로 취소
scancel 12345
# 특정 사용자 Job 전체 취소
scancel -u username
실무 팁
- 잘못된 GPU Job이 클러스터 리소스를 잡아먹고 있으면 즉시 scancel 실행
- Slurm QoS 정책에 따라 관리자 계정만 다른 사용자 Job 취소 가능
HPC/GPU 환경에서 자주 쓰는 명령어 조합
| 작업 목적 | 명령어 예시 |
| GPU 사용 테스트 | srun --gres=gpu:1 nvidia-smi |
| 장시간 Job 제출 | sbatch long_train.sh |
| 특정 사용자 Job 확인 | squeue -u user1 |
| Job 강제 종료 | scancel JOBID |
장점과 단점
장점
- 간단한 명령어로 자원 요청·실행·관리 가능
- GPU, CPU, 메모리, 파티션 등 유연하게 설정 가능
- HPC 운영자와 사용자가 동일 인터페이스 사용
단점
- 잘못된 옵션 사용 시 리소스 낭비
- 장기 Job 취소 시 데이터 손실 위험
실무 팁과 주의사항
- 테스트는 항상 srun으로 짧게 실행 후, 검증되면 sbatch로 장기 실행
- Job 스크립트에는 모듈 로드(module load)와 환경 변수 설정을 명시
- GPU Job에서는 nvidia-smi로 자원 할당 확인 필수
- squeue 출력은 watch와 함께 사용하면 실시간 모니터링 가능
watch -n 5 squeue -u username
정리하며
srun, sbatch, squeue, scancel은 Slurm 운영과 사용의 4대 기본기입니다.
이 명령어들만 숙지해도 대부분의 Job 제출·상태 확인·취소 작업을 수행할 수 있습니다.
다음 17편에서는 Slurm 파티션과 노드 관리 – slurm.conf 설정과 노드 상태 제어를 다루어, 클러스터 자원 배치와 운영 정책 설정 방법을 설명하겠습니다.
728x90