
私はリモートクラスタで作業しています(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