
Я работаю на удаленном кластере (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 задания действительно такие же, как у тех, которые запущены (или запущены ранее), но эти два заблокированных задания не имеют никаких 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" задания исчезают, но только после относительно долгого времени.
Эта проблема случалась со мной несколько раз в прошлом, и среди всех пользователей этого кластера, похоже, я единственный, кто столкнулся с этой проблемой. При обращении в службу поддержки они обычно каким-то образом удаляют два задания, но до сих пор я не получил никакого долгосрочного решения этой проблемы.
- Вы хоть понимаете, что происходит?
- Могу ли я удалить эти две странные работы?
- Как мне избежать повторения подобных вещей?
решение1
«Эти задания остаются там надолго» Я полагаю/надеюсь, что через два года они будут окончательно оформлены. В любом случае, я наткнулся на тот же вопрос («Могу ли я удалить эти (…) странные [массивные] задания»), и использование кавычек (пишущей машинки) (одинарных или двойных) решило проблему:
qdel "job_identifier[]"
для удаления всего массива. Кроме того, вы можете указать конкретный $PBS_ARRAYID
(или диапазон) с помощью -t
опции