我该如何粗鲁地为每个节点分配一项任务?

时间:2019-07-10 22:40:28

标签: slurm

我正在通过带有sbatch的SLURM管道运行大约400个文件。当我使用sbatch ./myscript.sh file_x排队任务时,所有文件都排队到同一节点。

我已经在sbatch脚本的开头尝试了#SBATCH参数的变体,但没有成功。到目前为止,这是我尝试过的:

#!/bin/bash
#SBATCH -N 1
#SBATCH -n 60
#SBATCH -o slurm_out/output_%j.txt
#SBATCH -e slurm_error/error_%j.txt

#!/bin/bash
#SBATCH -n 60
#SBATCH -o slurm_out/output_%j.txt
#SBATCH -e slurm_error/error_%j.txt

#!/bin/bash
#SBATCH -N 1
#SBATCH -o slurm_out/output_%j.txt
#SBATCH -e slurm_error/error_%j.txt

#!/bin/bash
#SBATCH -o slurm_out/output_%j.txt
#SBATCH -e slurm_error/error_%j.txt

正在创建并写入slurm_out文件,因此SBATCH肯定会选择参数。

关于-n选项,文档说默认值是“每个节点一个任务”,但事实并非如此:

  

-n,--ntasks = sbatch不启动任务,它请求分配资源并提交批处理脚本。这个选项   通知Slurm控制器作业步骤在分配中运行   将启动最多数量的任务,并提供足够的任务   资源。默认值为每个节点一项任务,但请注意   --cpus-per-task选项将更改此默认值。

哪些参数将使每个节点获得一个任务?

1 个答案:

答案 0 :(得分:1)

您可以简单地尝试使用--ntasks-per-node=1。如果未通过节点数指定任务数,则默认为“每个节点一个任务”。在这种情况下,Slurm将假定它必须产生与请求的节点数一样多的任务。但这仍然并不意味着将为每个任务分配一个单独的节点,这取决于您如何在提交脚本中启动计算。

如果您除该节点上不需要其他作业外,请添加--exclusive参数。