Grundlegendes zum Zurückfüllen
Backfilling kann dazu beitragen, die Clusterauslastung und den Durchsatz zu maximieren, indem kleinere Aufträge weiter zurück in der Warteschlange vor einem Auftrag ausgeführt werden können, der an der Vorderseite der Warteschlange wartet, solange der Auftrag an der Vorderseite nicht verzögert wird. Der HPC-Auftragsplanerdienst vergrößert die Ausführung von Aufträgen auf die maximal angeforderten Ressourcen, bevor versucht wird, Ressourcen für das Zurückfüllen zu nutzen. Informationen zum Ändern der Konfigurationsoptionen finden Sie unter Configure the HPC Job Scheduler Service.
"Backfilling" ist standardmäßig aktiviert, wobei der Backfill-Blick vorausschauen auf 1000 Aufträge festgelegt ist. Die Einstellung "Blick nach vorn" bestimmt die Anzahl der Aufträge, die der HPC-Auftragsplanerdienst durchsucht, um Aufträge zu finden, die Lücken im Zeitplan ausfüllen können. Mit den folgenden Konfigurationsoptionen können Sie backfilling ändern oder deaktivieren:
Zulassen des Zurückfüllens aus einem Teil der Warteschlange (innerhalb des angegebenen Backfill-Blicks)
Das Zurückfüllen aus der gesamten Warteschlange zulassen
Das Ausfüllen von nicht zulassen
Anmerkung
Das Ausfüllen von Aufträgen, die an den Cluster übermittelt werden, ist nur wirksam, wenn eine maximale Laufzeit angegeben ist.
Sie können Auftragsvorlagen verwenden, um eine maximale Laufzeit für alle Aufträge zu definieren. Sie können beispielsweise eine Reihe von Auftragsvorlagen namens BigJob, MediumJob und SmallJob mit maximaler Laufzeit von einem Tag, einer Stunde und einer Minute erstellen. Weitere Informationen finden Sie unter Auftragsvorlagen.
Sie können auch einen Auftragsübermittlungsfilter schreiben, der überprüft, ob die Laufzeitauftragseigenschaft nicht auf unendlich festgelegt ist. Weitere Informationen finden Sie unter Grundlegendes zu Aktivierungs- und Übermittlungsfiltern.
Funktionsweise des Rückfüllens
Wenn ein Auftrag den Anfang der Warteschlange erreicht, steht möglicherweise keine ausreichende Anzahl von Knoten zur Verfügung, um seine Mindestkernanforderung zu erfüllen. In diesem Fall reserviert der Auftrag alle Knoten, die sofort verfügbar sind, und wartet auf den Auftrag, der derzeit ausgeführt wird, bis er abgeschlossen ist.
Beim Zurückfüllen werden dann die reservierten Leerlaufknoten wie folgt verwendet:
Basierend auf der laufzeit, die für den aktuell ausgeführten Auftrag angegeben ist, wird eine Startzeit für den Warteauftrag eingerichtet.
Die Startzeit wird verwendet, um ein Backfill-Fenster von Knoten (n) x Zeit (t) zu definieren. Beispielsweise würden vier Knoten, die sich für 15 Minuten im Leerlauf befinden, ein 4 x 15 Backfill-Fenster erstellen.
Der HPC-Auftragsplanerdienst sucht nach dem ersten Auftrag in der Warteschlange, der im Fenster "Rückfüllen" abgeschlossen werden kann. Beispielsweise würde ein Auftrag, der mindestens acht Kerne erfordert (vier Knoten, vorausgesetzt duale Kernknoten) und eine Laufzeit von 10 Minuten genau in das 4 x 15-Fenster passen.
Wenn ein Auftrag gefunden wird, der in das Fenster passt, wird er aktiviert und vor dem Auftrag ausgeführt, der oben in der Warteschlange wartet.