2

ジョブのスケジューリングに PBS/Torque を使用する計算クラスターを使用しています。キューは時々かなり長くなる可能性があります。たとえば、800を超えるキューにいくつかのジョブが送信されています(showqジョブの完全なリストが表示されていると報告されていますが、私が知る限り、これらは必ずしも含まれているわけではありません実行の順序)。

自分のジョブがキューのどこにあるかを知りたいです。私の前にいくつ処理されますか?次のような出力を取得したいと思いますJob <id>: 417/862。このようにして、進行状況と待機時間の少なくともいくつかの兆候が得られます。しかし、私はこれを行う方法を見つけることができませんでした。それはできますか?

4

1 に答える 1

1

キューに入れられたジョブが によって提示された順序で実行されると期待できるかどうかはわかりませんでしたがshowq、さらに調査した結果、確かにそのように見えます。

によって出力されるキューshowqの形式は次のとおりです。

ACTIVE JOBS--------
[table headers]
[listing of active jobs]
IDLE JOBS--------
[table headers]
[listing of idle jobs]
BLOCKED JOBS----------
[table headers]
[listing of blocked jobs]

この形式に基づいて、次の bash スクリプトを思いつき、ジョブの ID を指定して、キューのアイドル セクションでジョブの場所を見つけました。

job=$1

idlestart=`showq | grep "IDLE JOBS" -n | cut -d: -f1`

jobline=`showq | grep -n $job | cut -d: -f1`
place=`expr $jobline - $idlestart - 2`

echo "Idle Jobs section starts at line $idlestart"
echo "Job $job at line $jobline"
echo "Place in queue: $place"

出力例:

$ ./placeinq 6565618 

Idle Jobs section starts at line 343
Job 6565618 at line 387
Place in queue: 42
于 2012-12-06T11:17:33.043 に答える