0

HTCondor プールでさまざまなジョブのバッチを実行したいと考えています。Type1 の 10 ジョブ、Type2 の 20 ジョブなどとしましょう。これらの各ジョブ タイプは、現在のジョブが終了したときに新しいジョブを取得する必要があります。

タイプが 1 つだけの場合、すべてのジョブが終了したか、ジョブ バッチ全体の制限時間が経過したかを単純にクエリします。これらの要件のいずれかが満たされると、x ジョブの次の反復がクラスターに送信されます。

これは、小さな関数 (Lua で書かれていますが、質問にとってはあまり重要ではありません) によって行われます。

function WaitForSims(CheckupDelay)
    while io.popen([[condor_q -format "%d\n" clusterid]]):read('*all'):len()~=0 do
        os.execute("echo Checkup timestamp: "..os.date("%x %X"))
        os.execute(string.format("timeout %d 1>nul",CheckupDelay))
    end
end

Type1、Type2、Type3のジョブを分けて個別にチェックする可能性はありますか? 現在、現在のユーザーとしてすべてのジョブをチェックしています。

ジョブにタグまたは何かを追加するのが理想的です。チェックアップ コールを変更するだけでよいからです。ドキュメントでは、簡単に追加できるものを見つけることができませんでした.JobIDを覚えていましたが、それらを保存する必要があり、複雑さが増しました.

4

1 に答える 1

0

リンクされた回答

解決策は別の回答で見つけることができますが、ドキュメントのどこに記載されているかわかりませんでした。

job.subファイルに次を追加します。

+YourCustomVarName = 1
+YourCustomStringName = "String"

それに対してチェックするには、次を使用します。

condor_q -constraint 'YourCustomVarName == 1' -f "%s" JobStatus

また

condor_q -constraint "YourCustomStringName == \"String\"" -f "%s" JobStatus

(見積書の取り扱いは異なる場合があります)

于 2017-09-06T12:51:30.883 に答える