扭矩pbs_python提交作业错误(15025队列已存在)

时间:2014-05-01 15:25:00

标签: queue jobs pbs qsub torque

我尝试执行此示例脚本(https://oss.trac.surfsara.nl/pbs_python/wiki/TorqueUsage/Scripts/Submit

#!/usr/bin/env python
import sys
sys.path.append('/usr/local/build_pbs/lib/python2.7/site-packages/pbs/')
import pbs

server_name = pbs.pbs_default()
c = pbs.pbs_connect(server_name)
attropl = pbs.new_attropl(4)
# Set the name of the job
#
attropl[0].name  = pbs.ATTR_N
attropl[0].value = "test"
# Job is Rerunable
#
attropl[1].name  = pbs.ATTR_r
attropl[1].value = 'y'
# Walltime
#
attropl[2].name  = pbs.ATTR_l
attropl[2].resource = 'walltime'
attropl[2].value = '400'
# Nodes
#
attropl[3].name  = pbs.ATTR_l
attropl[3].resource = 'nodes'
attropl[3].value = '1:ppn=4'
# A1.tsk is the job script filename
#
job_id = pbs.pbs_submit(c, attropl, "A1.tsk", 'batch', 'NULL')
e, e_txt = pbs.error()
if e:
    print e,e_txt
print job_id

但是shell显示错误" 15025队列已经存在"。随着qsub作业正常提交。我有一个队列'批次'在我的服务器上。扭矩版本 - 4.2.7。 Pbs_python版本 - 4.4.0。

我应该怎么做才能开始新工作?

2 个答案:

答案 0 :(得分:1)

这里有两件事。首先,pbs_python中存在一个错误,它将15025错误代码映射到“Queue already exists”。查看source of torque我们看到15025实际上映射到错误“作业执行的错误UID”,这意味着在扭矩服务器上,守护程序无法确定您提交的用户是否被允许运行作业。这可能是因为以下几点:

  1. 您提交的用户在运行pbs_server
  2. 的计算机上存在
  3. 您提交的主机不在pbs_server的“submit_hosts”参数中。
  4. 解决方案1 ​​

    对此的补救措施取决于您如何跨系统对用户进行身份验证,您可以使用/etc/hosts.equiv指定允许提交的用户/主机,此文件需要分发到所有扭矩节点以及扭矩服务器机器。使用hosts.equiv是非常不安全的,我实际上没有使用它。我们使用中央LDAP服务器对网络上的所有用户进行身份验证,但没有此问题。您也可以手动将用户添加到所有扭矩节点和扭矩服务器,注意确保所有系统上的UID都相同。

    解决方案2

    如果#1不是你的问题(我怀疑它是),你可能需要将你提交的机器的主机名添加到扭矩服务器上的“submit_hosts”参数。这可以通过qmgr:

    完成
    [root@torque_server ]# qmgr -c "set server submit_hosts += hostname.example.com" 
    

答案 1 :(得分:0)

您正在使用的pbs python库是针对扭矩2.4.x编写的。

扭矩的内部api用扭矩4.0.x重写。很可能需要为新的API编写库。

目前扭矩的开发人员不测试任何外部库。它们有可能随时破裂。