2017-09-06 23 views
0

HTCondorプール上で異なるバッチのジョブを実行したいとします。 Type1の10のジョブ、Type2の20のジョブなどを考えてみましょう。現在のジョブが完了すると、これらのジョブ・タイプはそれぞれ新しいジョブを取得する必要があります。HTCondorジョブサブミットタグ

すべてのジョブが終了した場合、またはジョブバッチ全体の時間制限が過ぎた場合は、単純に1つのタイプのクエリを使用します。これらの要件の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 

はタイプ1、タイプ2とタイプ3のジョブを分離し、チェックする可能性がありますそれらは独立している?現在、すべてのジョブが現在のユーザーであるかどうかを確認します。

私は単純にチェックコールを変更できるので、ジョブにタグなどを追加するのが理想的です。私が追加し易いものを見つけることができなかったドキュメントでは、私はJobID-sを覚えていたかもしれませんが、もっと複雑なものを追加する必要があります。それはしかしマニュアルに記載されている

答えて

0

Linked Answer

ソリューションは、別の答えで見つけることができ、私は見つけることができませんでした。 job.subファイルの追加

+YourCustomVarName = 1 
+YourCustomStringName = "String" 

使用し、それに対してチェック用:

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

または

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

を(引用の取り扱いは変化させることができる)