HPC & GPU Engineering/AI Infrastructure Engineer

[HPC/GPU 클러스터 운영 Zero to Hero 16편] Slurm 기본 명령어 – srun, sbatch, squeue, scancel 사용법

ygtoken 2025. 8. 10. 08:27
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