1

SLURM がsbatchスクリプトからジョブを起動する方法がわかりません。SLURM が--ntasks引数を無視しsrunて、バッチ ファイル内のすべてのタスクをすぐに起動しているようです。StackOverflowのこの回答のコードを少し変更した例を次に示します。

$ salloc --ntasks=1 --ntasks-per-core=1
salloc: Granted job allocation 1172
$ srun -n 1 sleep 10 & time srun -n 1 echo ok
[1] 5023
srun: cluster configuration lacks support for cpu binding
srun: cluster configuration lacks support for cpu binding
ok

real    0m0.052s
user    0m0.004s
sys 0m0.012s

したがって、私のセットアップでは、srun echoコマンドはすぐに実行されますが、コマンドの終了後に実行されると予想されますsrun sleep 10

私は SLURM 2.6.5 を使用して、8 コアの個人用ワークステーションでジョブのスケジュールと送信を行っています。自分でインストールしたため、構成が壊れている可能性は十分にあります。slurm.conf ファイルの関連部分を次に示します。

# SCHEDULING
SchedulerType=sched/backfill
SelectType=select/cons_res
SelectTypeParameters=CR_CPU
# COMPUTE NODES
NodeName=Tom NodeAddr=localhost CPUs=7 RealMemory=28100 State=UNKNOWN
PartitionName=Tom Nodes=Tom Default=YES MaxTime=INFINITE State=UP

printenv | grep SLURM実行後の出力は次のとおりですsalloc --ntasks=1

SLURM_NODELIST=Tom
SLURM_NODE_ALIASES=(null)
SLURM_MEM_PER_CPU=4100
SLURM_NNODES=1
SLURM_JOBID=1185
SLURM_NTASKS=1
SLURM_TASKS_PER_NODE=1
SLURM_JOB_ID=1185
SLURM_SUBMIT_DIR=/home/tom/
SLURM_NPROCS=1
SLURM_JOB_NODELIST=Tom
SLURM_JOB_CPUS_PER_NODE=1
SLURM_SUBMIT_HOST=Tom
SLURM_JOB_NUM_NODES=1

コメントや提案をいただければ幸いです。さらに情報が必要な場合はお知らせください。

読んでくれてありがとう、

トム

もう少し遊んだら更新

私はある程度の進歩を遂げましたが、まだ私が望む動作を完全には得ていません。

使用すると、ステップを待機--exclusiveするステップを取得できます。echosleep

salloc --ntasks=1
salloc: Granted job allocation 2387
srun -n 1 --exclusive sleep 10 & time srun -n 1 --exclusive echo ok
[1] 16602
ok
[1]+  Done                    srun -n 1 --exclusive sleep 10

real    0m10.094s
user    0m0.017s
sys 0m0.037s

salloc --ntasks=2
salloc: Granted job allocation 2388
srun -n 1 --exclusive sleep 10 & time srun -n 1 --exclusive echo ok
[1] 16683
ok

real    0m0.067s
user    0m0.005s
sys 0m0.020s

しかし、各ステップが複数のプロセッサを必要とする複数ステップのジョブを実行している場合、これを適切に行う方法はまだわかりません。

salloc --ntasks=6
salloc: Granted job allocation 2389
srun -n 2 --exclusive stress -c 2 &
srun -n 2 --exclusive stress -c 2 &
srun -n 2 --exclusive stress -c 2 &

12個stressのプロセスを提供します。

salloc --ntasks=6
salloc: Granted job allocation 2390
srun -n 1 --exclusive stress -c 2 &
srun -n 1 --exclusive stress -c 2 &
srun -n 1 --exclusive stress -c 2 &
srun -n 1 --exclusive stress -c 2 &
srun -n 1 --exclusive stress -c 2 &
srun -n 1 --exclusive stress -c 2 &

sbatchでは、スクリプトで 6 つのプロセッサを使用し、それぞれ 2 つのプロセッサで一度に 3 つのステップを開始するにはどうすればよいでしょうか? 使い方は正しいsrun --exclusive -n 1 -c 2 stress -c 2ですか?

4

1 に答える 1