Automatisches Parallelisieren Vorlesung im Wintersemester 2010/11 Eberhard Zehendner FSU Jena Thema: Listenbasierte Ablaufplanung Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 1 / 14 Heuristiken: Listenbasierte Ablaufpläne Definition (bereiter Auftrag) 2 Auftrag v zum Zeitpunkt t N bereit, wenn seine Ausführung nicht vor t beginnt, aber seine Vorgänger dann bereits abgearbeitet sind: v 2 BEREIT(; t ) , (v ) t ^ (u) + (u) t 8u 2 PRED(v ) Greedy-Strategie Freier Prozessor erhält sofort bereiten Auftrag (sofern vorhanden) Führt zu listenbasierten Ablaufplänen: min q ; r neue Aufträge gestartet, wenn q Prozessoren frei und r Aufträge bereit ( ) Für r > q > 0 Auswahl aus bereiten Aufträgen nötig (erfordert Spezifikation eines Auswahlverfahrens) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 2 / 14 Güteschranke für listenbasierte Ablaufplanung Satz (Ausführungsdauer listenbasierter Ablaufpläne für p Prozessoren) () (2 1=p ) opt (p) Folgerung Ausführungsdauer auf p Prozessoren bzgl. Optimum höchstens verdoppelt Listenbasierte Ablaufplaufpläne für p Eberhard Zehendner (FSU Jena) = 1 optimal Automatisches Parallelisieren Listenbasierte Ablaufplanung 3 / 14 Beweis der Schranke Beweis. . . () (2 1=p ) opt (p) ( ) + (v ) = () () Sei v ein Auftrag mit v 2 [ + 1) frei ist Sei t N der größte Wert kleiner als v , für den ein Prozessor in der Zeit t ; t (evtl. gibt es auch kein solches t) Der freie Prozessor wurde v nicht zugeteilt, also war v nicht bereit [ + 1) in Ausführung [ ( ) + (u); (v )) ist kein Prozessor frei, da t maximal ist Im Zeitraum [(u ); (u ) + (u )) bzw. [(v ); (v ) + (v )) sind jeweils höchstens (p 1) Somit befindet sich ein (evtl. indirekten) Vorgänger u von v in der Zeit t ; t Im Zeitraum u Prozessoren frei Dieses Argument kann iteriert werden Vor dem Start aller Eintrittsknoten ist kein Prozessor frei ( ) (p 1) () für einen gewissen Abhängigkeitspfad p () = (; p) + opt (1) (p 1) () + opt (1) (p 1) opt (p) + p opt (p) = (2p 1) opt (p) ; p Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 4 / 14 Die Güteschranke () (2 1=p ) opt (p) ist scharf Kritischer Pfad mit () = 1 + Kp sp ! sp+1 ! s2p+1 Optimaler Ablaufplan (links) opt (p) = 1 + Kp Listenbasierter Ablaufplan (rechts) () = K (2p () K (2p 1) 2p opt (p) = 1 + Kp = p Eberhard Zehendner (FSU Jena) 1 ( + )! 2p 1 p 1 Kp 2p 1 p Automatisches Parallelisieren für K 1 ) !1 Listenbasierte Ablaufplanung 5 / 14 Basisalgorithmus für listenbasierte Ablaufplaufplanung Listenbasierte Ablaufplaufplanung. . . . . . wegen Technik, alle bereiten Aufträge in Warteliste zu verwalten 1. Initialisierung: (a) Setze die Zeit auf t =0 2. Wiederhole, solange noch Aufträge auszuführen sind: (a) Füge Aufträge ohne Vorgänger der Warteliste hinzu (bereite Aufträge) ( ) (b) Sind q Prozessoren frei und r Aufträge bereit, entnimm die ersten min q ; r Aufträge aus der Warteliste und starte sie zum Zeitpunkt t (c) Erhöhe t um 1 (d) Entferne Aufträge, die zur (neuen) Zeit t enden Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 6 / 14 Listenbasierte Ablaufplaufplanung mit Prioritätenliste Allgemeines Schema für ein Auswahlverfahren Bereite Aufträge werden „nach Wichtigkeit“ (Priorität) zur Ausführung ausgewählt 1. Initialisierung: (a) Berechne eine Priorität für jeden Auftrag (b) Setze die Zeit auf t =0 2. Wiederhole, solange noch Aufträge auszuführen sind: (a) Sortiere Aufträge ohne Vorgänger nach Priorität in die Warteliste (bereite Aufträge) ( ) (b) Sind q Prozessoren frei und r Aufträge bereit, entnimm aus der Warteliste min q ; r Aufträge und starte sie zum Zeitpunkt t (c) Erhöhe t um 1 (d) Entferne Aufträge, die zur (neuen) Zeit t enden Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 7 / 14 Implementierungstechniken: Ereignissteuerung Unvorteilhaftes Iterationsschema Inkrementieren der Zeit in Einerschritten ergibt (()) Vorgänge Hängt nicht nur von G, sondern auch von ab Abhilfe durch Ereignissteuerung Nur Zeitschritte bearbeiten, in denen sich eine Datenstruktur ändert Geschieht ausschließlich am Beginn und Ende eines Auftrags Ergibt insgesamt (jV j) Ereignisse Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 8 / 14 Wiederholung: Datenstruktur Heap Definition (Heap, Halde) Spezieller balancierter Binärbaum Kompakt in Feld der Länge n abgespeichert Wurzel erhält Index 1 Direkte Nachfolger von Knoten i erhalten Indizes 2i und 2i (sofern 2i n bzw. 2i 1 n) + +1 Ordnung nach Schlüsseln: K i K 2i ; K 2i 1 (Max-Heap) bzw. K i [] [ ] [ + ] [ ] K [2i ]; K [2i + 1] (Min-Heap) Eigenschaften von Max-Heaps bzw. Min-Heaps Maximum (bzw. Minimum) in konstanter Zeit bestimmbar ( Löschen des Maximums (bzw. Minimums) in Zeit O log n ( Einfügen eines Knotens in Zeit O log n Eberhard Zehendner (FSU Jena) ) Automatisches Parallelisieren ) Listenbasierte Ablaufplanung 9 / 14 Implementierungstechniken: Heap-Strukturen Max-Heap als Vorrangwarteschlange ( j j) ( j j) Einsortieren eines Auftrags nach Priorität in Zeit O log V Entnahme des höchst priorisierten Auftrags in Zeit O log V Hat für jeden Auftrag nur einmal zu geschehen (bereit, aktiv) Min-Heap zur Verwaltung aktiver Prozessoren Aktiver Prozessor zusammen mit auszuführendem Auftrag und dessen Bearbeitungsende ebenfalls auf einem Heap verwaltet ( Einsortieren eines Prozessors gemäß Bearbeitungsende in Zeit O log p ) O(log jV j) Berechnung des nächsten Ereignisses in konstanter Zeit ( Entfernen des danach freien Prozessors in Zeit O log p ) O(log jV j) Hat für jeden Auftrag nur einmal zu geschehen (aktiv, beendet) Anmerkung: Verwaltung der freien Prozessoren auf einem Stack (konstante Zeit pro Auftrag) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 10 / 14 Implementierungstechniken: Vorgängerzähler Auftrag zur Zeit t aus Vorgängerliste aller Nachfolger entfernen Anzahl noch nicht beendeter Vorgänger eines Auftrags in Zelle eines Felds speichern Nach Beendigung eines Vorgängerauftrags dekrementieren Ist Auftrag danach bereit, sofort in Warteliste einfügen (j j) Konstanter Aufwand pro Kante, daher Komplexität O E Satz (Berechnungskomplexität listenbasierter Ablaufplanung) (j j j j + jE j) durchführbar Listenbasierte Ablaufplanung ist in Zeit O V log V Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 11 / 14 Ableitung von Prioritäten aus kritischen Pfaden Critical-Path-Scheduling Bisher noch kein konkretes Schema für Prioritäten benannt Beliebt: Aufträge auf kritischen (Rest-) Pfaden erhalten Vorrang () Als Priorität kann Restlaufzeit rl v verwendet werden Bereite Aufträge gleicher Restlaufzeit Erfordern Verfeinerung des Auswahlverfahrens Zum Beispiel Bevorzugung von Aufträgen mit vielen Nachfolgern Oder einfach zufällige Auswahl Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 12 / 14 Hu’s Algorithmus Definition (Eingabebaum) Graph, in dem jeder Knoten höchstens einen direkten Nachfolger besitzt Satz (Hu’s Algorithmus) Listenbasierte Ablaufplaufplanung mit der Restlaufzeit als Priorität eines Auftrags führt im Falle von Eingabebäumen mit identischer Ausführungsdauer v für alle Aufträge zu optimalen Ablaufplänen () Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 13 / 14 Fallstudie zum Critical-Path-Scheduling Superskript eines Knotens: Ausführungsdauer (v ) Annotierung links vom Knoten : Restlaufzeit rl (v ) optimal listenbasiert t P1 P2 P3 P1 P2 P3 Warteliste 0 s1 s2 s3 s1 s2 s3 (s3 ; s2 ; s1 ) 1 s1 s2 s1 s2 s8 (s8 ) 2 s1 s5 s6 s1 s5 s8 (s5 3 s8 s5 s6 s6 s5 s8 (s6 ; s4 4 s8 s5 s6 s6 s5 s8 5 s8 s5 s6 s6 s5 s8 6 s8 s4 s7 s6 s4 s8 ; s6 ; s4 ; s7 ) ; s7 ) (s4 ; s7 ) (s4 ; s7 ) (s4 ; s7 ) 7 s8 s4 s7 s4 s7 (s7 ) 8 s8 s4 s7 s4 s7 () s7 () 9 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Kommata trennen gleich priorisierte Aufträge Auswahl gleich priorisierter Aufträge erfolgte zufällig Listenbasierte Ablaufplanung 14 / 14