SLURM을 사용하여 HPC 클러스터에서 작업 실행

SLURM을 사용하여 HPC 클러스터에서 작업 실행

두 개의 Python 스크립트가 있다고 가정해 보겠습니다 test1.py.test2.py

두 개의 다른 노드에서 동시에 이러한 파일을 실행하려면 SLURM 스크립트를 어떻게 작성해야 합니까?

참고: test1.pytest2.py서로 독립적입니다.

답변1

슬럼 스크립트에서는 배열을 사용하고 두 개 이상의 스크립트를 Slurm 스크립트의 배열 요소로 정의할 수 있습니다. 예는 다음과 같습니다.

#!/bin/bash
#
#SBATCH --ntasks=1
#SBATCH --partition xxxx
#SBATCH --time=6:00:00
#SBATCH --array=1-300

# Job array size will be number of lines in file divided by 
# number of lines chosen below

START=$SLURM_ARRAY_TASK_ID
NUMLINES=100
STOP=$((SLURM_ARRAY_TASK_ID*NUMLINES))
START="$(($STOP - $(($NUMLINES - 1))))"

echo "START=$START"
echo "STOP=$STOP"

for (( N = $START; N <= $STOP; N++ ))
do
    LINE=$(sed -n "$N"p File.txt)
    call-program-name-here $LINE
done

이 경우 다른 노드에서 이러한 파일을 실행하기 위한 리소스를 신중하게 정의하거나 slurm.conf에 올바른 예약 구성이 있어야 합니다.

https://slurm.schedmd.com/faq.html#multi_job

전체 노드를 작업에 할당하려면 구성 구성 SelectType=select/linear를 구성하십시오.

관련 정보