用DRMAA获取运行作业的主机

2024-05-15 03:39:16 发布

您现在位置:Python中文网/ 问答频道 /正文

使用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'

问题

  1. 这是否可以通过DRMAA接口实现?看说明书好像没有,但我想我还是会问的
  2. 如果是,怎么做?你知道吗

Tags: 引擎import名称网格内容session作业sleep
1条回答
网友
1楼 · 发布于 2024-05-15 03:39:16

简而言之:你是对的,这是不可能的。你知道吗

长话短说:

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字段。你知道吗

相关问题 更多 >

    热门问题