Zeitlimit
Die Zeit, die den Lauf eines Jobs benötigt sollte mit der Option --timelimit
im Jobskript angeben werden. Der Wert sollte möglichst genau angegeben werden.
Wenn der angegebene Wert zu hoch ist, wir der Job von backfill nicht profitieren können:
Backfill ist ein Mechanismus, der dafür sorgt, dass ein Job mit niedriger Priorität vor einem mit höherer Priorität gestartet werden kann, ohne dass der Start des Jobs mit höherer Priorität verzögert wird.
In der Abbildung unten sei Job A ein Job, der gerade angelaufen ist. Job B, der die von Job A belegten Knoten sowie weitere Knoten benötigt, muss warten, bis Job A zu Ende ist. Falls Job C eine kürzere maximale Laufzeit hat als Job A, dann kann Job C vor Job B starten, auch wenn Job B eine höhere Priorität hat und ohne, dass der Start von Job B verzögert wird. So können "Lücken" im Belegungsplan gefüllt werden und damit kann ein besserer Durchsatz im Cluster erreicht werden.
Man beachte, dass ein Job nur dann von Backfilling profitieren kann, wenn die notwendige Laufzeit für den Job wesentlich kleiner ist, als das Default-Maximum und wenn diese Zeit angegeben wird. Als Beispiel für Slurm legtfolgende Zeile
#SBATCH --time=2-12:00:00
eine Obergrenze von 2 Tagen und 12 Stunden fest. Je kürzer die angegebene Zeit, desto stärker kann der Job von Backfilling profitieren. Sollte der Job die Zeitgrenze allerdings erreichen, wird er vom Batch-System beendet. Vgl. man sbatch
für weitere Details.
Wenn der Wert zu niedrig ist, wird der Job beendet, sobald das Zeitlimit erreicht wird.
Das maximale Zeitlimit kann durch Quality of Service or QOS begrenzt sein.