0

このスクリプト例を実行してみます ( 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

しかし、シェルは「15025 Queue already exists」というエラーを表示します。qsub ジョブを使用すると、正常にサブミットされます。サーバーに 1 つのキュー「バッチ」があります。トルクバージョン - 4.2.7。Pbs_python バージョン - 4.4.0。

新しい仕事を始めるにはどうすればいいですか?

4

2 に答える 2

1

ここでは 2 つのことが行われています。まず、15025 エラー コードを「Queue already exists」にマップする pbs_python のエラーがあります。トルクのソースを見ると、15025 が実際には「ジョブ実行の UID が正しくありません」というエラーにマップされていることがわかります。これは、トルク サーバー上で、送信しているユーザーがジョブの実行を許可されているかどうかをデーモンが判断できないことを意味します。これには、いくつかの理由が考えられます。

  1. 送信しようとしているユーザーは、pbs_server を実行しているマシンに存在しません
  2. 送信元のホストが pbs_server の「submit_hosts」パラメータにありません。

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" 
于 2014-05-09T00:57:03.450 に答える
0

使用している pbs python ライブラリは、torque 2.4.x 用に作成されています。

トルク用の内部 API は、トルク 4.0.x で大幅に書き直されました。ライブラリは、おそらく新しい API 用に作成する必要があります。

現在、トルクの開発者は外部ライブラリをテストしていません。いつでも壊れる可能性があります。

于 2014-05-02T19:54:37.707 に答える