Das Scheduling der Jobs ist eine recht komplexe Aufgabe und lässt sich vereinfacht wie folgt beschreiben.

Wir haben im Endeffekt zwei Mechanismen: Job Priorität und Backfilling

Job Priorität setzt sich zusammen aus Queue Priorität und Wartezeit und Bonuspunkte.

Daraus wird ein Ranking erstellt und von oben nach unten abgearbeitet. Dabei simuliert der Scheduler die obersten 5 Jobs und platziert die in der Zukunft auf Server.

Wenn dann ein großer Job ( z.B. ganze Node ) erst in 3 Tagen starten kann (weil vorher kein Platz frei ist), gibt es zwischen der aktuellen Auslastung und dem Punkt wo der Job starten kann, Leerlauf / Löcher.

Diese Löcher werden vom Backfilling aufgefüllt, sodass sich aber die Startzeit des großen Jobs nicht nach hinten verschiebt.

Dadurch werden dann kleine Jobs die eigentlich weiter hinten in der Priorität sind schonmal vorzeitig gestartet.

Backfilling füllt auch die Löcher auf, die durch Jobs entstehen die vorzeitig / früher als geplant fertig sind.


  • Keine Stichwörter