Comment puis-je démarrer un tas de travaux SGE (Sun Grid Engine) où certains utilisent l'option -hold_jid
, mais sans nécessiter de tri intelligent de l'ordre de qsub
soumissions.Démarrage simultané des travaux -hold_jid sur Sun Grid Engine
Si je fais ce everthing est très bien, où job2 attend job1 pour terminer:
qsub job1.sh
qsub -hold_jid job1.sh job2.sh # OK: job2 waits for job1
Toutefois, si je soumets à la place dans un ordre différent, comme indiqué ci-dessous, job2 commence à tort sans attendre job1. Vraisemblablement parce que SGE voit qu'il n'y a pas d'emploi1 à attendre puisque job1 n'a pas encore été soumis.
qsub -hold_jid job1.sh job2.sh
qsub job1.sh # BAD: job2 does not wait for job1
J'ai essayé l'option de maintien de l'utilisateur -h
puis libérer la cale de l'utilisateur avec qalter
, mais libérer la main de l'utilisateur semblent aussi libérer la -hold_jid
cale:
qsub -h -hold_jid job1.sh job2.sh
qsub -h job1.sh
qalter -h U job*.sh # BAD: job2 does not wait for job1
Construire un arbre de dépendance et commencer à soumettre les travaux du niveau de feuille résoudraient mon problème. Cependant, je voudrais éviter cela. J'utilise Sun Grid Engine 6.2u3 sur RHEL 6.
Je pense * que cela peut être dû au fait que vos travaux ne sont pas nommés de façon unique en attente. Par exemple job1 techniquement terminé (job1 passé) et est stocké quelque part dans le journal de comptabilité SGE. Ainsi, lorsque vous soumettez job2, même si job1 a été exécuté depuis longtemps, job2 sera toujours exécuté. Pour tester, essayez de nommer les travaux en utilisant des noms uniques ou utilisez jobid. – Vince
"mais la libération de l'utilisateur semble également libérer le hold" -hold_jid' ": avec d'autres tests, j'ai découvert que ce n'est pas le cas. 'qsusb' interprète l'option' -hold_jid' immédiatement lorsque la commande est émise et non lorsque le travail est planifié. Ainsi, la commande 'qsub -h -hold_jid job1.sh job2.sh' cherchera' job1.sh' dans la file d'attente, voyez qu'il n'y en a pas, et placez job2 dans la file d'attente sans attente. –