Slurm:在所有节点上创建一个目录

时间:2013-08-26 11:39:37

标签: resourcemanager

我正在用slurm启动并行执行的工作。此作业需要在每个节点中存在某个目录结构,但如果我在作业脚本中使用mkdir,则只在第一个节点中创建目录。如何确保在作业使用的所有节点中创建目录?

2 个答案:

答案 0 :(得分:1)

我想我必须自己回答。这不是一个完美的解决方案,但它在我的情况下工作得足够好。在作业脚本中,我在实际工作开始之前使用了它:

for node in $(scontrol show hostnames $SLURM_NODELIST) ; do
  srun -N 1-1 -n 1 -w $node mkdir -p /directory/to/be/created
done
sleep 60

$SLURM_NODELIST中的节点列表缩写,scontrol语句我得到全名。如果没有sleep命令,我有时会遇到某个目录不存在的问题,所以添加它只是为了安全。

问题在于我需要提前知道需要创建哪些目录,这在我的情况下是可行的,但在其他情况下可能会更难。

答案 1 :(得分:0)

您只需添加

即可

srun mkdir -p /directory/to/be/created

在你的脚本中

。它可能会尝试多次创建相同的目录,具体取决于群集配置,但无论如何它都可以工作。