2つのPythonスクリプトがあるとしましょうtest1.py
。test2.py
2つの異なるノードで同時にこれらのファイルを実行するには、どのように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を構成します。