Maui Scheduler
Konfiguration und Scheduling-Verhalten
Als Scheduler wird Maui Version 3.2.6p21 eingesetzt. Dieser unterstützt:
- Automatisches und manuelles Backfilling basierend auf dem Algorithmus First-fit bzw. benutzergesteuert nach der Anzeige der Backfill-Kapazität (Backfill-Window, siehe den Befehl showbf und Abschnitt 8.2 der Maui-Dokumentation: Backfill).
- Priorisierung von Jobs.
Durch die besondere Gewichtung der Queuetime werden Jobs nach First in - First out (FIFO) priorisiert bzw. wird versucht dieses Prinzip zu gewährleisten. Wir verwenden einen Queuetime-Weight-Factor von 10.
Die Favorisierung kurzer Jobs gegenüber Jobs mit einem hohen Wallclock-Limit. Wir verwenden ein XFaktor-Weight von 3.
In die Berechnung der Job-Prioritäten gehen beide Faktoren ein. Zusätzlich geht der Service-Weight-Faktor 1 in die Berechnung ein (vgl. Abschnitt 5.1.2 der Maui-Dokumentation: Job Priority Factors).
Maui-Befehle
Die Maui-Befehle gibt es zusätzlich zu den Befehlen von Torque (qsub, qstat, qdel):
Job Efficiency und Backfill
Die untere Abbildung zeigt Mauis Scheduling-Verhalten schematisch. Bei einem Scheduler ohne Backfill-Fähigkeit wäre als nächstes Job D und G an der Reihe. Da nun H mit einer Walltime ausgestattet ist, die unterhalb der Lücke von Job D passt, wird Maui diese Lücke nutzen und zuerst Job H vor Job D und G ausführen, obwohl H viel später in die Queue gestellt wurde. Diie Ausführzeiten sämtlicher nachfolgender Jobs bleiben von der Backfill-Eigenschaft unberührt. Für die Backfill-Kapazität sind ungenutzte Lücken der Ressourcenreservierung ausschlaggebend.
- Abbildung 1: Mauis Backfill-Policy schematisch dargestellt
Anders verhält es sich mit der Job Efficiency. Diese ist ein Kennwert dafür, wieviel Prozent der veranschlagten Walltime tatsächlich für bereits berechnete Jobs verbraucht wurden. Eine nur geringe Effizienz schlägt sich in der Unmöglichkeit einer genauen Vorhersage von auftretenden Backfill-Kapazitäten nieder. Dies lässt darum die Scheduling-Policy, aus Sicht mancher User als sehr willkürlich erscheinen; tatsächlich jedoch ist diese Eigenart dem Verhalten der User geschuldet, stets Jobs mit nur geringer Wallclock-Effizienz zu submittieren.
Folgende Regel ist in jedem Falle ausschlaggebend: Je exakter man die Walltime eines Jobs aus User-Sicht vorhersagen kann (Option -l walltime=H:MM:SS des Befehls qsub), desto früher kommt der Job auch zur Ausführung. Wenn sie keine Walltime explizit mitangeben, gilt für den Job als Ausführungszeit die maximale Walltime der Queue. Dieses macht sich zum einen in einer niedrigeren Priorität, einem geringeren XFactor (s.o.), bemerkbar und zum Anderen in einer deutlich geringeren Wahrscheinlichkeit den Job durch die Backfill-Eigenschaft frühzeitig ausführen zu können.