2014-02-11 8 views
8

Ich habe mehrere Aufträge an PBS gesendet. Jetzt möchte ich, dass der Job, den ich eingereicht habe, der letzte sein wird.Artikel in PBS-Warteschlange umsortieren

Eine Option ist, alle Vorschau-Jobs (mit qhold) zu halten. Das Problem ist, dass ich -W depend=afterok: Schalter verwendete, um Jobs zu ermöglichen, gerade nachdem der Job der Vorschau beendet wurde.

Daher meine PBS Warteschlange sieht so ähnlich:

468743.server username queue_name job1   4828 6 36 46gb 24:00 R 16:12 
468744.server username queue_name job1_cont  -- 6 36 46gb 24:00 H -- 
468745.server username queue_name job1_cont  -- 6 36 46gb 24:00 H -- 
468746.server username queue_name job1_cont  -- 6 36 46gb 24:00 H -- 
468747.server username queue_name job1_cont  -- 6 36 46gb 24:00 H -- 
468748.server username queue_name job1_cont  -- 6 36 46gb 24:00 H -- 
468743.server username queue_name job2   4828 6 36 46gb 24:00 R 16:12 
468744.server username queue_name job2_cont  -- 6 36 46gb 24:00 H -- 
468745.server username queue_name job2_cont  -- 6 36 46gb 24:00 H -- 
468746.server username queue_name job2_cont  -- 6 36 46gb 24:00 H -- 
468747.server username queue_name job2_cont  -- 6 36 46gb 24:00 H -- 
468748.server username queue_name job2_cont  -- 6 36 46gb 24:00 H -- 
468753.server username queue_name NewJob  -- 6 36 46gb 24:00 H -- 
468754.server username queue_name NewJob_cont  -- 6 36 46gb 24:00 H -- 
468755.server username queue_name NewJob_cont  -- 6 36 46gb 24:00 H -- 

Jetzt will ich NewJob, die auf der Leitung letzte ist, nach dem ersten Job in {job1, job2} ist abgeschlossen laufen, und vor irgendwelchen "_cont". Und ich möchte, dass die NewJob_cont-Jobs nach NewJob ausgeführt werden.

Kann ich die Position von NewJob in einer Zeile ändern, ohne den Rest der Warteschlangenhierarchie zu zerstören?

+1

Welchen Scheduler verwenden Sie, um diese Jobs auszuführen? – dbeer

Antwort

2

Sie können qalter verwenden, um Abhängigkeiten für Jobs zu ändern. Sie können ausführen:

qalter 468744 -W depend=after:468753 
qalter 468753 -W depend=after:468743 

Diese machen werden, so dass 468.744 erst nach dem neuen Auftrag ausführen und den neuen Job erst nach dem ersten Job auszuführen. Genau wie Sie nach Abhängigkeiten zu Jobs in der Warteschlange hinzufügen können, können Sie auch andere Arten von Abhängigkeiten hinzufügen.

+0

Das ist eine Option, aber da ich 10 weitere "Job #" andere als 1 und zwei habe, und ich alle nach meinem NewJob verschieben muss, wird es eher ärgerlich. Während NewJob ausgeführt wird, können auch andere Jobs ausgeführt werden, bis zu dem vom Serveradministrator festgelegten Limit. Also diese Lösung ist nicht ideal. Danke, Ronen. – Ronen

+0

Sie können die Aftertstart-Abhängigkeit verwenden, wenn sie nach diesem Job ausgeführt werden sollen. – dbeer

+0

Ja, aber wenn ich mehr als einen Job verschieben möchte, wird es sehr kompliziert. Ich möchte die lineare Warteschlange neu anordnen, um komplexe Abhängigkeitsgraphen nicht neu zu mischen. – Ronen