【发布时间】:2012-10-09 11:55:59
【问题描述】:
我正在构建一个 python 管道,并在该管道脚本中调用另一个 python 脚本,该脚本使用 qsub 向集群提交作业(该作业包含 op 70 个作业) 现在我需要这些作业的输出来继续工作。
如何在所有 70 个作业完成之前“暂停”python 脚本?
我无法修改提交给服务器的脚本,所以必须在我自己的脚本中完成。 (使用 AMD64 集群)
编辑:
这就是我调用其他脚本的方式:
os.system("python ScriptThatQsub.py arg1 arg2")
我仍在努力。并搜索interwebz,但我不禁想知道……这可能吗??
【问题讨论】:
-
您在使用 Sun Grid Engine 吗?如果是这样,那么您可以使用 -hold_jid
提交自己的作业,该作业将等到 作业完成后再开始您的作业。 -
我认为是神经节。使用 Rocks 集群。我对集群还是个新手,所以我不太确定。
-
qsub 会阻塞吗?看看它是否有一个命令行选项来等待作业完成。在我工作过的所有服务器上,
qsub立即返回,服务器端守护程序从那里接管作业控制。如果是这种情况,除了定期解析showq的结果(在两者之间休眠)并查看您的工作是否仍在运行/等待之外,我不确定如何使其工作。 -
是的,qsub 立即返回。这就是我的问题所在。所以..我必须从 showq 解析结果,看看我的工作是否仍然有效?如果是这样的话,睡觉? (在我的情况下为 qstat)当然不是理想的解决方案..
标签: python cluster-computing qsub