Parallelität und Kommunikation WS 2010/2011 Friedhelm Meyer auf der Heide V9, 3.1.2011 Friedhelm Meyer auf der Heide 1
Rückblick, Thema heute Wir wollen herausfinden, wie gut Routing entlang unabhängig vom Routing Problem gewählter Wege sein kann. (oblivious Routing). Bisher: Wir schauen uns das Butterfly Netzwerk an, routen von Quellen zu Senken entlang der eindeutigen kürzesten Wege. Heute: Routing von Funktionen mit großer Congestion, Einstieg in das Kapitel über Datenverwaltung. Friedhelm Meyer auf der Heide 2
Wegsystem im Butterflynetzwerk Friedhelm Meyer auf der Heide 3
Zwischenstand für Routing in BF(log(N)) Dilation ist log(n). Congestion für Permutationen ist im worst case n 1/2. Beispiele: Matrixtransposition, Bitreversal Diese worst case Schranke gilt bis auf konstante Faktoren in allen Netwerken mit konstantem Grad, für alle Wegesysteme. Die durchschnittliche Congestion für Funktionen aus F p ist O(log(N) + p). Bemerkung: Die durchschnittliche Congestion für Permutationen ist O(log(N)). Das Random Rank Protokoll routet jedes Routingprogblem in Zeit O(Congestion + log(n)), m.g.w. Friedhelm Meyer auf der Heide 4
Routingprotokolle: Was können wir erwarten? Erinnerung: (i) (ii) Jedes Routingprotokoll braucht mindestens max{d f, C f } Schritte, um f zu routen. Jedes Routingprotokoll, das in jedem Schritt, in dem sein Puffer nicht leer ist, ein Paket weiterleitet, benötigt höchstens D f C f Schritte, um f zu routen. Liegt die Routingzeit T nahe beim Maximum (gut!) oder beim Produkt (schlecht)? Wir benötigen eine geeignete Vorfahrtsregel, die für jeden Prozessor zu jedem Zeitpunkt entscheidet, welches Paket aus seinem Puffer weitergeleitet wird. Friedhelm Meyer auf der Heide 5
Wie sieht die Vorfahrtregel aus? Das Random Rank Protokoll: 1. - Jedem Paket D i wird zu Beginn ein zufällig gewählter Rang rang(d i ) [k] zugewiesen. (k wird später festgelegt.) - D i D j : rang(d i )<rang(d j ) oder rang(d i )=rang(d j ) und i<j. ( Beachte: definiert eine vollständige Ordnung auf den Paketen.) 2. In einem Schritt wählt jeder Knoten, der mindestens ein Paket in seinem Puffer hat, das bzgl. kleinste aus und schickt es weiter. (Beachte: Wohin das Paket weiter geschickt wird, ist durch den vorgegebenen Routingweg festgelegt.) Friedhelm Meyer auf der Heide 6
Das Random Rank Protokoll Satz: Sei l 0. Sei f F p eine Routingfunktion mit Congestion C. Dann benötigt das Random Rank Protokoll in BF(log(N) mit Wahrscheinlichkeit 1-1/N l höchstens T= 8eC 1 + (l+4)log(n) =O(log(N)+C) Schritte, falls k>t-log(n) gewählt wird. (Die Wahrscheinlichkeit bezieht sich auf die zufällige Wahl der Ränge) Was passiert, wenn wir f F p und die Ränge zufällig wählen? Satz: Falls f F p zufällig gewählt wird, benötigt das R.R.P. mit Wahrscheinlichkeit (1-1/N l ) 2 1-2/N l höchstens T= 8e(2ep+(l+1)log(N)+loglog(N)) 1 + (l+4)log(n) = O(log(N)+p) Schritte. Friedhelm Meyer auf der Heide 7
Fragestellungen Wie groß ist die Dilation? Wie groß ist die Congestion? Worst case, average case Welche Routingzeit ist bei gegebener Congestion und Dilation erreichbar? Wie können wir effizient Routingprobleme mit großer Congestion routen? (Erinnerung: Die Permutationen Bitreversal und Matrixtransposition haben Congestion N 1/2, somit ist ihre Routingzeit mindestens N 1/2. Das R.R.P. routet diese Permutationen m.g.w. in Zeit Θ( N 1/2 ) ). Friedhelm Meyer auf der Heide 8
Valiants Trick: Effizientes Routing beliebiger p-p-funktionen f F p ist eine p-p-funktion, falls jede Quelle p Pakete verschickt und jede Senke Ziel von p Paketen ist. 1-1-Funktionen sind genau die Permutationen. Routing mit Valiants Trick: Friedhelm Meyer auf der Heide 9
Valiants Trick Somit können auch Bitreversal und Matrixtransposition in Zeit O(log(n)) geroutet werden!! Friedhelm Meyer auf der Heide 10
Zusammenfassung zu Oblivious Routing im Butterflynetzwerk Wie groß ist die Dilation? log(n) Wie groß ist die Congestion? Worst case, für Permutationen: N 1/2 (z.b. Bitreversal, Matrixtransposition) Average case über F p : O(log(N)+p) Welche Routingzeit ist bei gegebener Congestion erreichbar? (O(log(N)+C), m.g.w. (Random Rank Protokoll) Wie können wir effizient Routingprobleme mit großer Congestion routen? Valiant s Trick: Jede p-p-funktion kann m.g.w. in Zeit O(log(n)+p) geroutet werden. Friedhelm Meyer auf der Heide 11
Kapitel 6 Simulation von PRAMs durch Distributed Memory Machines Friedhelm Meyer auf der Heide 12
Agenda Wir werden uns mit Verfahren beschäftigen, Daten in einem Netzwerk so verfügbar zu machen, dass parallele Lese- und Schreibzugriffe auf sie effizient durchgeführt werden können. Formalisierung: Simulation von PRAMs durch DMMs Techniken: Randomisierung, Balls-into-Bins, Universelles Hashing Friedhelm Meyer auf der Heide 13
Die Parallel Random Access Machine - PRAM Kommunikation durch einen gemeinsamen Speicher Friedhelm Meyer auf der Heide 14
Lösungen für Zugriffskonflikte Schreibkonfliktlösungen für CW: - ARBITRARY: Irgendeiner der Schreibwünsche wird erfüllt (nicht-deterministisches Model, Algo muss funktionieren, egal welcher Schreibwunsch erfüllt wird.) - PRIORITY: Prozessor mit kleinster ID gewinnt. - COMMON: Alle Prozessoren, die in die gleiche Zelle schreiben wollen, müssen den gleichen Wert schreiben wollen. Friedhelm Meyer auf der Heide 15
Lösungen für Zugriffskonflikte - CW ist mächtiger als EW: - N-Prozessor CRCW-PRAM kann ODER und UND von n Bits in Zeit O(1) berechnen, N-Prozessor CREW-PRAM benötigt Zeit Θ(log(N)). -N-Prozessor CRCW-PRAM kann das Maximum von n Zahlen in Zeit O(loglog(N)) berechnen, N-Prozessor CREW-PRAM benötigt Zeit Θ(log(N)). (Übung) Friedhelm Meyer auf der Heide 16
Die Distributed Memory Machine - DMM Der Speicher ist über N Speichermodule verteilt. Friedhelm Meyer auf der Heide 17
DMM-Varianten In einem Schritt kann jeder Prozessor eine Lese/Schreib- Anfrage an eine Speicherzelle x abschicken. Sie wird an dasjenige Modul M i weitergeleitet, das x enthält. Butterfly-DMM: Das Netzwerk ist ein Butterfly-Netzwerk ARBITRARY-DMM: Falls mindestens eine Anfrage (Lese(x), Schreibe z nach x) an M i gestellt wird, wird irgendeine beantwortet c-collision-dmm: Falls höchstens c Anfragen an M i gestellt werden, werden alle beantwortet falls mehr als c Anfragen gestellt werden, wird keine Anfrage beantwortet Friedhelm Meyer auf der Heide 18
Simulationen mit einer Hashfunktion Simulation einer N-Prozessor EREW-PRAM auf einer N Prozessor Arbitrary-DMM: Verteile die PRAM-Zellen über die Speichermodule der Arbitrary- DMM, - mittels einer festen Hashfunktion h : [q] [N], z.b. h(x) = x mod N - mittels einer zufälligen Hashfunktion h : [q] [N] Friedhelm Meyer auf der Heide 19
Simulationen mit einer Hashfunktion Simulation einer N-Prozessor EREW-PRAM auf einer N Prozessor Arbitrary-DMM: Falls PRAM-Prozessoren auf Module zu. zugreifen, greift DMM auf Zugriffszeit = Contention := max {b i, i =[N]} b i = h -1 (i) ist die Anzahl der Zugriffe auf das i-te Modul Friedhelm Meyer auf der Heide 20
Über Contention Lemma: (Balls-into-bins) Falls N Bälle zufällig, unabhängig über N Kisten verteilt werden, ist die erwartete maximale Zahl von Bällen in einer Kiste O(log(N)/loglog(N)). Bei zufällig gewählter Hashfunktion h und beliebigen, festen x 0,, x N-1 ist die erwartete Contention O(log(N)/loglog(N)). Friedhelm Meyer auf der Heide 21