PBS-Programmierung
-
23-09-2019 - |
Frage
einige kurze und wahrscheinlich dumme Fragen über PBS:
1- I einreichen Jobs mit
qsub job_file
ist es möglich, einen (Teil-) Job in einer Job-Datei einreichen?
2- Ich habe das folgende Skript:
qsub job_a
qsub job_b
Für AUFTRAG_B starten, wäre es toll, bevor die Ergebnisse der AUFTRAG_A abgeschlossen zu haben. Ist es möglich, eine Art von Barriere oder eine otehr Abhilfe zu setzen, so AUFTRAG_B nicht gestartet wird, bis AUFTRAG_A fertig?
Danke
Lösung
Antwort auf die erste Frage:
Normalerweise sind Sie nur erlaubt, Aufträge von dem Host zu unterbreiten, zu denen der PBS-Server läuft, aber es hängt davon ab, wie Ihr PBS System eingerichtet ist.
Antwort auf die zweite Frage:
Sie können die Abhängigkeiten verwenden. Lesen Sie über die Option -W in der qsub Dokumentation. Hier ist ein Beispiel Bash-Skript:
dependency_id=$(qsub job_a)
qsub -W depend=afterok:$dependency_id job_b
AUFTRAG_B wird nach AUFTRAG_A Start erfolgreich abgeschlossen hat.
Andere Tipps
Ja, es ist möglich, einen Job von einem anderen Job zu übergeben, obwohl es einige Einschränkungen hat.
-Ihr Mütter müssen Client-Befehle (qsub) im Pfad haben
- $ USECP versucht, die Dateien aus dem Knoten zu kopieren, dass der erste Job auf läuft.
-Be vorsichtig einreichenden Stellen von anderen Jobs, da können Sie ganz einfach Absturz pbs_server wenn Ihr Skript Anrufe zu viele QSUBS einreichen.
können Sie haben Arbeitsplätze b - z abhängig von Job 'a' mit folgenden Syntax
qsub foo.sh -W abhängen = afterok: Joba
Job-Arrays könnte auch eine gute Lösung sein.