等待工作完成的有效方式:python和戏剧

时间:2012-06-07 17:48:38

标签: python sungridengine drmaa

我想问一下我通过Python使用的drmaa API中的“等待”功能。它是否执行常量qstat(如果我们在SGE上运行它)来检查程序是否已完成执行。

我们的管理员希望我们避免任何常量qstat,因为它会因调度程序的额外负载而降低性能。

通常情况下,通过DRMAA检查作业状态是一种有效的方法,而不会超出调度程序。

谢谢! -Abhi

1 个答案:

答案 0 :(得分:1)

从DRMAA API的角度来看,没有更好的方法。 API仅使用默认的命令行工具反映您在shell脚本中可以执行的操作。

问题在于您的特定DRMAA库的实施策略,因为SGE提供了比常量轮询更好的方式来获取作业状态更新。因此,您有以下选择:

  • 修复您正在使用的DRMAA实现,以依赖与调度程序的某些直接通信。有线协议的一个信息来源可能是Open Grid Scheduler项目。
  • 等到Univa(或其他人)为其Grid Engine产品提供DRMAAv2实施。此版本的API支持有关作业状态更改的库回调(http://ogf.org/documents/GFD.198.pdf),这似乎正是您想要的。