
Estou trabalhando em um cluster remoto (grade oeste > bugaboo) no qual envio processos por meio de um .pbs
arquivo. Minha .pbs
aparência é assim
#!/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`"
, onde PBS_ARRAYID
assumirá os valores de 1 a 100 para cada trabalho específico. /Path/To/code.R
é um wrapper R para algum arquivo binário escrito em C
. Quando eu envio o trabalho
$ qsub mypbs.pbs
Tudo parece estar funcionando bem. As simulações funcionam conforme o esperado e obtive os resultados. A questão é que em algum momento, enquanto as simulações estão sendo executadas, muitas vezes vejo trabalhos estranhos nos “trabalhos bloqueados”.
$ 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
O ID do trabalho é de fato o mesmo daqueles que foram executados (ou executados antes), mas esses dois trabalhos bloqueados não têm nenhum PBS_ARRAYID
entre colchetes. Esses trabalhos ficam lá por muito tempo e não consigo excluí-los
$ qdel 30004048[]
qdel: nonexistent job id: 30004048[]
Além disso, não consigo enviar nenhum novo trabalho (que é o principal problema), pois recebo a mensagem
$ 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)
mesmo que eu NÃO viole esse limite do servidor. Eventualmente, esses trabalhos "NotQueued" acabam desaparecendo, mas somente depois de um tempo relativamente longo.
Esse problema já aconteceu comigo várias vezes no passado e, entre todos os usuários deste cluster, parece que sou o único com esse problema. Ao entrar em contato com o suporte, eles geralmente acabam excluindo de alguma forma os dois trabalhos, mas até agora não recebi nenhuma solução de longo prazo para esse problema.
- Você tem alguma ideia do que está acontecendo?
- Posso excluir esses dois trabalhos estranhos?
- Como posso evitar que essas coisas aconteçam novamente?
Responder1
“Esses trabalhos ficam lá por muito tempo” acho/espero que depois de dois anos estejam finalizados. De qualquer forma, me deparei com a mesma pergunta (“Posso excluir esses (…) trabalhos estranhos [array]”) e o uso de aspas (de máquina de escrever) (simples ou duplas) resolveu o problema:
qdel "job_identifier[]"
para excluir a matriz completa. Além disso, você pode especificar um específico $PBS_ARRAYID
(ou intervalo) com a -t
opção