分配给SLURM工作的核心

问题描述 投票:1回答:1

比方说,我想提交一个slurm作业,只是分配总的任务量(--ntasks=someNumber),而不指定节点数量和每个节点的任务。有没有办法在启动的slurm脚本中知道slurm为每个保留的节点分配了多少个核心?我需要知道这些信息,以便为我要启动的程序正确地创建一个machinefile,它必须是这样的结构。

node02:7
node06:14
node09:3

一旦工作启动,我想出的唯一方法就是使用命令来查看节点上分配了哪些核心:

scontrol show jobid -dd

在它的输出中存储了上述信息(以及大量的其他细节).是否有更好的方法来获得这些信息?

先谢谢你,Lorenzo

linux cluster-computing slurm
1个回答
0
投票

的方式。srun 文档中说明了创建机器文件的方法是运行 srun hostname. 要得到你想要的输出,你可以运行

srun hostname -s | sort | uniq -c | awk '{print $2":"$1}' > $MACHINEFILE

你应该检查你的程序文档,看看它是否接受一个有重复而不是后缀数的机器文件。如果是,你可以将命令简化为

srun hostname -s > $MACHINEFILE

当然,第一步其实是先确定你确实需要一个机器文件,因为很多并行程序库都支持Slurm,可以从Slurm在作业启动时设置的环境变量中收集所需信息。

© www.soinside.com 2019 - 2024. All rights reserved.