Applications/Scheduler

[slurm] 작업 노드 지정

CRAY KOREA Blog 2021. 7. 23. 16:32

sinfo 명령을 이용하여 "idle" 상태의 노드를 확인 합니다.

sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
short*       up    4:00:00     11  down* gpu_a100n[01-06],gpu_v100n[01-05]
short*       up    4:00:00      1  alloc node43
short*       up    4:00:00      6   idle gpu_v100n[06-08],node[44-46]
normal       up 1-00:00:00     11  down* gpu_a100n[01-06],gpu_v100n[01-05]
normal       up 1-00:00:00      1  alloc node43
normal       up 1-00:00:00      6   idle gpu_v100n[06-08],node[44-46]
long         up 7-00:00:00     11  down* gpu_a100n[01-06],gpu_v100n[01-05]
long         up 7-00:00:00      1  alloc node43
long         up 7-00:00:00      6   idle gpu_v100n[06-08],node[44-46]

 

1. slurm 작업 제출 스크립트 예제

- 기존 slurm 작업 제출 스크립트에 "#SBATCH -w {node_neme}"을 추가

#!/bin/sh
#SBATCH -J test
#SBATCH -p short
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -o %x_%j.out
#SBATCH -e %x_%j.err
#SBATCH -w gpu_v100n08
#SBATCH --time=00:59:59

export OMP_NUM_THREADS=1

srun hostname

exit 0

 

2. slurm interactive mode 시

- squeue 명령으로 작업 제출 상태를 확인

squeue
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
              3779      long sleep.sh    minju PD       0:00      1 (BadConstraints)
              3986      long    go.sh    test  R  3-18:20:38      1 node43

 

(1) salloc을 사용하는 경우

- salloc 명령에 "-w {node_name}" 옵션을 추가

salloc -p short -N 1 -n 1 -w gpu_v100n08
salloc: Granted job allocation 3991

 

- 작업 할당 상태를 확인

squeue
             JOBID PARTITION     NAME     USER  ST       TIME  NODES NODELIST(REASON)
              3779      long sleep.sh    minju  PD       0:00      1 (BadConstraints)
              3991     short     bash leesangy  R        0:03      1 gpu_v100n08
              3986      long    go.sh    test   R  3-18:20:45      1 node43

 

- srun 명령을 이용하여 계산노드에서 작업 실행(예. hostname)

srun hostname
 hostname
gpu_v100n08

 

- 할당 받은 노드로 접속 하는 경우

$ srun --pty bash

※ 노드로 접속하시는 경우에는 "exit"명령을 이용하여 노드 접속을 해제 하셔야 합니다. 

 

- exit 명령을 이용하여 interactive mode 종료

exit
exit
salloc: Relinquishing job allocation 3991
salloc: Job allocation 3991 has been revoked.

 

- 작업이 종료 되면 "scancel {작업ID}" 명령을 사용하여 작업을 삭제

squeue
             JOBID PARTITION     NAME     USER  ST       TIME  NODES NODELIST(REASON)
              3779      long sleep.sh    minju  PD       0:00      1 (BadConstraints)
              3991     short     bash leesangy  R        3:22      1 gpu_v100n08
              3986      long    go.sh    test   R  3-18:23:45      1 node43
scancel 3991
squeue
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
              3779      long sleep.sh    minju PD       0:00      1 (BadConstraints)
              3986      long    go.sh    test  R  3-18:24:52      1 node43

 

(2) srun을 사용하는 경우

$ srun -p short -N 1 -n 1 -w gpu_v100n08 --pty bash

- "--exclusive" 옵션을 추가하면 독점적으로 노드를 사용할 수 있습니다.

$ srun -p short -N 1 -n 1 -w gpu_v100n08 --exclusive --pty bash

 

- 작업 할당 상태를 확인

squeue
             JOBID PARTITION     NAME       USER   ST       TIME  NODES  NODELIST(REASON)
              3779      long       sleep.sh      minju   PD        0:00         1   (BadConstraints)
              3996     short          bash leesangy     R        0:04         1   gpu_v100n08
              3993      long           bash        test     R 1-12:07:51         1   node43

 

- 작업 종료는 "exit" 명령을 이용하면 접속 해제와 함께 작업종료가 됩니다.