`qsub` は「ブロックされたジョブ」に「NotQueued」を残します

`qsub` は「ブロックされたジョブ」に「NotQueued」を残します

私はリモートクラスタで作業しています(westgrid > バガブー)で.pbsファイル経由でプロセスを送信します。私のは.pbsこんな感じです

#!/bin/bash
#PBS -l procs=1
#PBS -l walltime=100:00:00
#PBS -N SimulationName
#PBS -m ea
#PBS -M [email protected]
#PBS -l pmem=3000mb
#PBS -t 1-100

echo "Starting run at: `date`"

R --vanilla --args ${PBS_ARRAYID} < /Path/To/code.R

echo "Job finished with exit code $? at: `date`"

、ここでPBS_ARRAYID各ジョブごとに1から100までの値が取られます。は、/Path/To/code.Rで書かれたバイナリファイルのRラッパーですC。ジョブを送信すると

$ qsub mypbs.pbs

すべて正常に動作しているようです。シミュレーションは期待どおりに実行され、出力が得られました。問題は、シミュレーションの実行中のある時点で、「ブロックされたジョブ」に奇妙なジョブが表示されることが多いことです。

$ showq -u myName

active jobs------------------------
JOBID              USERNAME      STATE PROCS   REMAINING            STARTTIME


0 active jobs            0 of 4516 processors in use by local jobs (0.00%)
                        428 of 436 nodes active      (98.17%)

eligible jobs----------------------
JOBID              USERNAME      STATE PROCS     WCLIMIT            QUEUETIME


0 eligible jobs   

blocked jobs-----------------------
JOBID              USERNAME      STATE PROCS     WCLIMIT            QUEUETIME

30004048[]          matthey  NotQueued     1  2:02:00:00  Wed Mar 23 12:56:27
30156104[]          matthey  NotQueued     1  2:02:00:00  Mon Mar 28 01:14:16

2 blocked jobs   

Total jobs:  2

ジョブIDは、実行中のジョブ(または以前に実行したジョブ)と同じですが、ブロックされた2つのジョブにはPBS_ARRAYID角括弧内に何も入っていません。これらのジョブは長い間そこに残っており、削除できません。

$ qdel 30004048[]

qdel: nonexistent job id: 30004048[]

また、新しい仕事を提出することができません(これが主な問題です)というメッセージが表示されるため

$ qsub mypbs.pbs

qsub: submit error (Maximum number of jobs already in queue MSG=Job 30893576.b0 violates the global server limit of 500 jobs queued per user)

私はこのサーバーの制限に違反していません。 最終的にこれらの「NotQueued」ジョブは消えてしまいますが、それは比較的長い時間が経過した後です。

この問題は過去に何度か発生しており、このクラスターの全ユーザーの中で、この問題を経験しているのは私だけのようです。サポートに連絡すると、通常は何らかの方法で 2 つのジョブが削除されますが、これまでのところ、この問題に対する長期的な解決策は得られていません。

  • 何が起こっているのか分かりますか?
  • これら 2 つの奇妙なジョブを削除できますか?
  • どうすればこのようなことが再び起こらないようにできるでしょうか?

答え1

「これらのジョブは長期間そこに残ります」と私は推測します/2年後には確定していることを願っています。とにかく、私は同じ質問(「これらの(…)奇妙な[配列]ジョブを削除できますか?」)に出くわし、(タイプライター)引用符(シングルまたはダブル)の使用で問題を解決しました。

qdel "job_identifier[]"

配列全体を削除します。さらに、オプション$PBS_ARRAYIDで特定の配列(または範囲)を指定することもできます。-t

関連情報