두 개의 Python 스크립트가 있다고 가정해 보겠습니다 test1.py
.test2.py
두 개의 다른 노드에서 동시에 이러한 파일을 실행하려면 SLURM 스크립트를 어떻게 작성해야 합니까?
참고: test1.py
및 test2.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를 구성하십시오.