
Ich arbeite an einem Remote-Cluster (Westgrid > Bugaboo), auf dem ich Prozesse über eine .pbs
Datei einreiche. Meine .pbs
sieht so aus
#!/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`"
, wobei PBS_ARRAYID
die Werte 1 bis 100 für jeden spezifischen Job übernommen werden. /Path/To/code.R
ist ein R-Wrapper für eine in geschriebene Binärdatei C
. Wenn ich den Job absende
$ qsub mypbs.pbs
alles scheint gut zu funktionieren. Die Simulationen laufen wie erwartet und ich habe die Ergebnisse erhalten. Das Problem ist, dass ich irgendwann, während die Simulationen laufen, oft seltsame Jobs in den „blockierten Jobs“ sehe.
$ 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
Die Job-IDs sind zwar die gleichen wie die, die laufen (oder vorher gelaufen sind), aber diese beiden blockierten Jobs haben keine PBS_ARRAYID
zwischen den eckigen Klammern. Diese Jobs bleiben lange dort und ich kann sie nicht löschen
$ qdel 30004048[]
qdel: nonexistent job id: 30004048[]
Außerdem kann ich keinen neuen Job einreichen (was das Hauptproblem ist), da ich die Meldung erhalte
$ 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)
obwohl ich dieses Serverlimit NICHT verletze. Letztendlich verschwinden diese „NotQueued“-Jobs, aber erst nach relativ langer Zeit.
Dieses Problem ist mir in der Vergangenheit schon mehrmals passiert und von allen Benutzern dieses Clusters scheine ich der einzige zu sein, der dieses Problem hat. Wenn ich den Support kontaktiere, werden die beiden Jobs normalerweise irgendwie gelöscht, aber bisher habe ich keine langfristige Lösung für dieses Problem erhalten.
- Haben Sie eine Ahnung, was los ist?
- Kann ich diese beiden seltsamen Jobs löschen?
- Wie kann ich verhindern, dass so etwas noch einmal passiert?
Antwort1
„Diese Jobs bleiben für lange Zeit dort“ – ich vermute/hoffe, dass sie nach zwei Jahren abgeschlossen sind. Jedenfalls bin ich über dieselbe Frage gestolpert („Kann ich diese (…) seltsamen [Array]-Jobs löschen?“) und die Verwendung von (Schreibmaschinen-)Anführungszeichen (einfach oder doppelt) hat das Problem gelöst:
qdel "job_identifier[]"
um das gesamte Array zu löschen. Zusätzlich können Sie $PBS_ARRAYID
mit der -t
Option