slurm - 节点之间共享的I / O?这可能吗?

时间:2017-07-10 15:31:55

标签: slurm

我正在使用NGS数据,最新的测试文件非常庞大。

通常我们的管道只使用一个节点,不同工具的输出是./scratch文件夹。

目前的海量数据集无法使用一个节点。这就是为什么我想使用至少2个节点来解决速度等问题,而不是提交所有工作等等。

使用多个节点甚至多个分区很容易 - 我知道该步骤使用哪个参数。

所以我的问题不是缺少参数,而是解决以下有关I / O问题的slurm背后的逻辑:

假设我有工具-A。 Tool-A在两个节点上运行700个作业(node1上有340个作业,node2上有360个作业) - 输出分别保存在每个节点上的./scratch上。

工具-B正在使用工具-A的结果 - 它们位于两个不同的节点上。

解决这个问题的最佳方法是什么? - 是否有一个参数告诉slurm哪些作业属于哪个以及在哪里找到工具-B的输入? - 将/ scratch上的输出更改为本地文件夹会更聪明吗? - 或者将工具A的输出从两个节点合并到一个节点会更好吗? - 还有其他想法吗?

我希望我“简单地”理解我的问题......如果情况并非如此,请道歉!

2 个答案:

答案 0 :(得分:0)

我天真的建议是为什么不在所有节点上共享临时nfs卷?这样,无论节点如何,ToolA都可以获得ToolA的所有输出数据。它不是读取/写入速度的最佳解决方案,但在我看来,这对您的情况来说是最简单的。 更软的解决方案(不难开发)可以实现跟踪文件生成位置的数据库。 我希望它有所帮助!

答案 1 :(得分:0)

...仅适用于那些通过搜索引擎遇到的问题:如果您不能使用任何类型的共享文件系统(NFS,GPFS,Lustre,Ceph),并且您仅拥有大量数据设置中,您可以使用“ 登台”,这意味着在您的作业真正运行之前 。 尽管这在Slurm领域中被称为“铸造”,但这通常意味着您定义

  • 要在作业开始前将文件复制到分配给您的作业的所有节点上
  • 要在作业完成后从分配给您的作业的节点复制文件。

即使没有共享文件系统,这也是从作业节点来回获取所需所有内容的一种方法。

检查“ sbcast”的手册页,并相应地修改分批作业脚本。