我有通常的大量依赖作业,并希望在PBS集群环境中有效地运行它们。我一直在使用Ruffus,我很高兴,但我也想尝试其他方法。
在python中看起来很有趣的是jug。然而,似乎水罐假定工作在他们的要求中是同质的。我有一些需要8GB RAM的工作,而其他工作只需要100MB;有些可以使用所有处理器,有些是单线程的。我的目标是能够快速组装管道,运行它并根据依赖关系“更新”,并合理地记录,以便我可以看到仍然需要运行哪些作业。是否有人使用水壶或其他类似系统满足这些类型的要求?
答案 0 :(得分:3)
这里的水壶作者。
Jug确实很好地处理了依赖关系。如果您更改任何输入或中间步骤,运行jug status
将告诉您计算的状态。
目前无法指定某些任务(jug调用作业)应该为其分配多个进程。过去,每当我有多个线程运行的任务时,我都被迫采取最坏情况场景方法并将所有进程分配到jug execute
进程。
这意味着,当然,单线程任务将占用所有进程。由于大部分计算都在多线程任务中,因此可以接受。