私は、大規模な計算クラスタの2つの異なるパーティションでプログラムを実行するプロジェクトに取り組んでいます。私はバッチスクリプトを使ってこれを実行したいのですが、検索後、バッチスクリプト内から2つの異なるパーティションにプログラムを割り当てて実行できるかどうかはまだ不明です。ここで私のpythonで通常のスクリプトが、私は私のbashスクリプト内のpythonモジュール(異なるバージョンを)切り替えてるように私はここにすることはできませんが(私はbashのエラーのマルチパーティションジョブのバッチスクリプト?
#!/bin/bash
#SBATCH --partition=<WHAT GOES HERE? I want to perform 100 processes on partition "batch" and 1 process on partition "gpu". I will alternate between the 2 during my jobs execution>
#SBATCH --ntasks=<100 on batch, 1 on gpu>
#SBATCH --mem-per-cpu=2G
#SBATCH --time=4-00:00:00
#SBATCH --exclude=nodeynode[003,016,019,020-023,026-030,004-015,017-018,020,024,031]
#SBATCH --job-name="lorem_ipsum"
filenames=("name1" "name2" "name3")
srun -p gpu python gpu_init.py
wait
for i in {0..100}
do
for name in "${filenames[@]}"
do
srun -p batch pythonexecutable &
done
srun -p gpu python gpu_iter.py
wait
done
謝罪をしたいと思いますものの一種です図示せず)。実際には、バッチスクリプトのヘッダーにパーティションのリストを置くことができますが、私が実際に読んだのは、複数のパーティションではなく、リスト内から使用可能なパーティションを割り当てるようスケジューラに指示するだけです。
ありがとうございます!