SLURM 사용 정리 (sbatch, salloc, srun)

AFL·2024년 1월 12일

sbatch

  • 최대 72시간 사용 가능
#!/bin/bash
#SBATCH --gres=gpu:4     # number of gpu 
#SBATCH -p A100-40GB     # set partition to use
#SBATCH -J pivot_en      # name of job

#SBATCH -o  pivot_en.%j.out   # Name of stdout output file (%j: %jobId)
#SBATCH -t 3-00:00:00   # time limit

#SBTACH --ntasks=4 
#SBATCH --tasks-per-node=4

#SBATCH --cpus-per-task=1
#SBATCH --nodes=1           # node 갯수   
#SBATCH --nodelist=n28      # 특정 node 지정하고 싶을 때


python example.py \
...

사용할 gpu 갯수에 따라 #SBTACH --ntasks=4#SBATCH --tasks-per-node=4 를 같게 맞춰준다.

options

-J: 작업 이름

-p: partition 이름

-N : 사용할 노드 수

-n : 실행할 task 수

-o : output file 이름

-t : 실행 시간

--nodelist: 특정 노드 지정하고 싶을 때 지정


srun

  • 최대 6시간 사용 가능
salloc --partition=A5000 --nodes=1 --gres=gpu:4 --time=5:59:00
srun --pty bash


nvidia-smi 확인

ssh [NODELIST] nvidia-smi
watch -d -n 0.5 ssh [NODELIST] nvidia-smi 

srun 과 salloc 의 차이?

srun 은 바로 node 에 들어가서 작업 가능하지만 salloc 은 srun 으로 또 들어가야 한다.

srun 은 멀티 노드 작업을 할 수가 없다. 들어가는 노드는 단 하나다. 하지만 salloc 은 여러 노드들에 한꺼번에 명령을 내린다.

클러스터가 멀티 노드에 작업 효율은 떨어지기 때문에 사실 큰 의미는 없다.

profile
공부해서 남주자

0개의 댓글