python sge api提交给特定节点

时间:2013-09-02 10:59:07

标签: python api sungridengine

我尝试将我的程序用于群集。现在我创建小作业,并使用bash脚本将其提交给特定节点。这些作业将一个大文件复制到该节点,在该文件上执行另外五个程序,最后该作业将文件复制回来并在节点上删除它。

这个用于提交作业的bash脚本会检查给定目录中有多少hdd可用,计算可以在此节点上运行的最大作业数,并将此数量的作业发送到此特定节点。这种方法的缺点是我必须在所有作业完成后多次运行这个bash脚本。

现在我想用python和drmaa api一起做这个。但现在我想知道它是否能够使用此api进行节点控制。是否可以使用drmaa api提交到特定节点?

或者我是否必须使用Popen编写一个解决方法来执行qsub命令并通过解析qstat命令的输出来获取每个节点的作业数量?

1 个答案:

答案 0 :(得分:2)

我不熟悉Python的drmaa api,但是如果它提供了一种指定限制的方法,则可以使用限制来限制作业将在其上运行的主机。也许使用类似nativeSpecification的东西来传递-l hostname=whatever

请参阅http://www.gridengine.eu/programming-apis

  

设置作业提交参数(不是由DRMAA标准定义)很简单:可以使用DRMAA标准化本机规范进行设置,该规范采用Go SetNativeSpecification()作业模板方法。