我正在尝试用 python 编写一个简单的任务管理器,用于在 LSF 集群中运行大量作业。我一直试图确定(在 python 脚本中)给定用户的正在运行的作业数量。在命令行上,这将来自 command bjobs
。
IBM为 LSF C API提供了一个 python 包装器。使用他们的一个示例和我在网上找到的 C API 副本中的一些文档,我已经能够拼凑出以下脚本。
from pythonlsf import lsf
lsf.lsb_init("test")
userArr = lsf.new_stringArray(1)
lsf.stringArray_setitem(userArr, 0, 'my_username')
intp_num_users = lsf.new_intp()
lsf.intp_assign(intp_num_users, 1)
user_info = lsf.lsb_userinfo(userArr,intp_num_users)
该变量user_info
具有属性'numPEND'
、'numRESERVE'
、'numRUN'
和'numStartJobs'
,但所有这些属性均为 0。即使bjobs
报告正在运行的作业,它们也保持为零。
谁能告诉我在上面的代码片段中可能做错了什么?我已经多次阅读 C 和 python 文档,但找不到错误。