SLURM:如何仅在特定节点上运行30个作业?

时间:2016-05-27 10:04:29

标签: slurm

您需要运行30个srun作业,但要确保每个作业都在特定节点列表的节点上运行(具有相同的性能,以便公平地比较时间)。 你会怎么做?

我尝试了什么:

  • srun --nodelist=machineN[0-3] <some_cmd>:同时在所有节点上运行<some_cmd>(我需要的是:在上运行<some_cmd> 列表中的可用节点>

  • srun -p partition似乎有效,但需要一个包含精确机器N [0-3]的分区,但情况并非总是如此。

想法?

2 个答案:

答案 0 :(得分:9)

您可以朝相反的方向并使用--exclude的{​​{1}}选项:

sbatch

然后,slurm将仅考虑未在排除列表中列出的节点。如果列表很长且很复杂,则可以将其保存在文件中。

另一个选项是检查Slurm配置是否包含“功能”和

srun --exclude=machineN[4-XX] <some_cmd>

如果'features'列显示每个节点具有逗号分隔的功能列表(可能是CPU系列,网络连接类型等),则可以使用

sinfo  --format "%20N %20f"

答案 1 :(得分:2)

您可以使用-w选项。它已在Slurm版本17.11.10

中进行了测试

例如:

srun -p partition  -w node10 hostname