我正在尝试确定构建一种管道系统的最佳方法,该管道系统将包含许多相互依赖的文件,我想知道是否有人有关于工具或方法的具体建议。我们主要在Python和Linux上工作。
我们获得了传递到HPC群集上“收件箱”目录的实验数据文件,这些文件必须在几个线性连续步骤中处理。问题在于,有时必须在管道的某些阶段作为一个组处理多个样本,例如,样品可以独立地通过步骤A和B,但是该组中的所有样品必须完成该过程以进行步骤C(这需要所有样品在一起)。
这让我觉得是一种功能性问题,因为每一步都是模块化的,我只会检查输出是否存在:如果我有Sample 1 Step B输出,我需要Sample 2步骤B输出,然后我可以得到样本1 + 2 C输出。 我不太了解Puppet,但我想知道这种工具是否可以用于此事 - 处理依赖关系并处理监控状态的东西?有什么想法吗?
谢谢,
马里奥
答案 0 :(得分:0)
我想你问的是当文件之间存在依赖关系时,你可以如何转换多个文件,并且可能并行化。解析依赖关系的问题称为拓扑排序。幸运的是,make
实用程序将为您处理所有这些,并且您可以使用-j
标志进行并行化,这比自己执行此操作更容易。默认情况下,只有在输入文件发生变化时才会重新生成文件,但这很容易通过确保在调用之前删除/不存在每个批次的所有输出和中间文件来解决。