Automatisches Parallelisieren - Vorlesung im Wintersemester 2010/11

Werbung
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
Herunterladen