使用DRMAA接口到网格引擎之子,我想获得运行特定作业的主机的名称。我想要如下内容(使用drmaa-python
接口)
>>> import drmaa
>>> s = drmaa.Session()
>>> s.initialize()
>>> jt = s.createJobTemplate()
>>> jt.remoteCommand = 'sleep'
>>> jt.args = ['100']
>>> jobid = s.runJob(jt)
>>> jobid
'1'
>>> s.jobStatus(jobid)
'running'
>>> s.the_function_I_want(jobid)
'worker-host-123'
简而言之:你是对的,这是不可能的。你知道吗
长话短说:
drmaa-python
库充当drmaav1api的底层C实现的包装器(参见https://www.ogf.org/documents/GFD.130.pdf)。这样的C库通常与集群框架一起提供。DRMAAv1不支持作业的标准化监视,因此drmaav1c和Python库都无法获得此信息。你知道吗如果您想知道功能的缺乏,请注意原始API设计是从2004年开始的。你知道吗
DRMAA的第二个版本(https://www.ogf.org/documents/GFD.231.pdf)确实支持监视。在编写本文时,唯一已知的实现是univagridengine,并且没有针对它的现有Python包装器实现。你知道吗
您可以尝试自己解析作业日志文件以提取执行主机名。如果需要将特殊选项传递给
qsub
以获取这样的文件,可以使用作业模板中的nativeSpecification
字段。你知道吗相关问题 更多 >
编程相关推荐