490 likes | 605 Views
Verteilte Algorithmen und Datenstrukturen Kapitel 2 : Routing und Scheduling. Christian Scheideler Institut f ür Informatik Universität Paderborn. Routing und Scheduling. B. Routing: finde Weg von A nach B Scheduling: koordiniere Paketbewegun-gen über Kanten. A. Routing.
E N D
VerteilteAlgorithmen und DatenstrukturenKapitel2: Routing und Scheduling Christian Scheideler Institut fürInformatik Universität Paderborn
Routing und Scheduling B • Routing: finde Weg von A nach B • Scheduling: koordiniere Paketbewegun-gen über Kanten A
Routing Problem: finde mit möglichst geringem Koordinierungsaufwand Wege, so dass • Weglänge (Dilation) so kurz wie möglich ist und • möglichst wenige Wege über dieselbe gerichtete Kante wollen (Congestion) Einfachste Lösung: oblivious Routing (Wege hängen nur von Quell-Ziel-Paaren ab)
Oblivious Routing Oblivious Routing für Graph G=(V,E): • WegesystemP = ∪s,tPs,t mit nichtleerer Wegemenge Ps,t für alle Quell-Ziel-Paare (s,t)∈V2(P wird anfangs berechnet) • Gewichtsfunktionw:P→ℝ+,so dass für alle (s,t)∈V2: ∑p∈Ps,t w(p) = 1. 1/3 s t 2/3
Oblivious Routing Verwendung eines Wegesystems mit ∑p∈Ps,t w(p) = 1 für alle (s,t)∈V2: Realität: • Zerteile „großes“ Paket bzw. Paketstrom mit Quell-Ziel-Paar (s,t) in Teile, so dass ein Bruchteil der Größe w(p) entlang p∈Ps,tgeschickt wird. • Schicke „kleines“ Paket mit Quell-Ziel-Paar (s,t) entlang p∈Ps,tmit Wahrscheinlichkeit w(p). Hier: • Ein Paket mit Quell-Ziel-Paar (s,t) entspricht Paar (s,t) im Mehrfachflussproblem mit Anforderung 1.
Oblivious Routing Verwendung eines Wegesystems mit ∑p∈Ps,t w(p) = 1 für alle (s,t)∈V2: Hier:Ein Paket mit Quell-Ziel-Paar (s,t) entspricht Paar (s,t) im Mehrfachflussproblem mit Anforderung 1. Lösung des Routingproblems: • Mehrfachfluss S, der jedem Paket mit Quell-Ziel-Paar (s,t) einen (s,t)-Fluss fs,t mit Wert |fs,t|=1 zuweist. • CongestionC(S): maxe∈E f(e)/c(e) • DilationD(S): längster Flusspfad in S
Routing im Gitter Wegesystem P für n×n-Gitter: • Für jedes Paar (x1,y1),(x2,y2)∈[n]2:route erst von (x1,y1) nach (x2,y1), dann von (x2,y1) nach (x2,y2). • D.h. eindeutiger Weg pro Quell-Ziel-Paar. (x2,y2) x-y-Routing Strategie (x1,y1) (x2,y1)
Routing im Gitter „Benchmark“ für Routingstrategie: kann die Strategie beliebige Permutationen p:V→V mit geringer Dilation und Congestion routen? (D.h. die Quell-Ziel-Paare sind bestimmt durch (v,p(v)) mit Anforderung 1 alle v∈V). Theorem 2.2: Die x-y-Routingstrategie kann jede Permutation im n×n-Gitter mit Con-gestion und Dilation höchstens d routen, wobei d die maximale Distanz eines Quell-Ziel-Paares ist.
Routing im Gitter Beweis: • Dilation: • p hat Länge d((x1,y1),(x2,y2)) • also ist max. Weglänge d • Congestion: • betrachte Kante e in x-Richtung (x2,y2) (x1,y1) Weg p e Weg p • maximal d Wege p können über e laufen, also ist Congestion in x-Richtung maximal d • dasselbe gilt auch in y-Richtung
Routing im Hypercube Bitanpassungsstrategie:Weg von (x1,...,xd) nach (y1,...,yd) führt über (y1,x2,...,xd), (y1,y2,x3,...,xd), (y1,y2,y3,x4,...,xd), ... • Dilation:optimal, da Weglänge gleich Distanz • Congestion: es gibt Permutationen, die sehr hohe Congestion haben! Beispiel: sei p(x1,...,xd) = (xd,...,x1) für alle (x1,...,xd)
Routing im Hypercube Beispiel: sei p(x1,...,xd) = (xd,...,x1) für alle (x1,...,xd) • Betrachte KnotenmengeM={ (x1,...,xd/2,0,...,0) | xi∈{0,1} für alle i∈{1,...,d/2} } • Nach d/2 Routingschritten gemäß p sind alle Pakete mit Quelle in M im Knoten (0,...,0) • Da |M|=2d/2 = 2d = n ist, kann Congestion wesentlich größer als Dilation (maximal log n) sein. Bestmöglich wäre Congestion O(1)!
Borodin-Hopcroft Schranke Theorem 2.3: Für jeden Graphen G der Größe n mit Grad d und jede oblivious Routing Strategie mit nur einem Pfad pro Quell-Ziel-Paar gibt es eine Permutation p, für die ein Knoten von mindestens n/d Pfaden durchlaufen wird. Beweis:Tafel (siehe auch Skript)
Valiants Trick Frage: gibt es oblivious Routingstrategien, die für alle Permutationen eine niedrige Congestion haben? Antwort: ja, aber wir brauchen mehrere Pfade pro Quell-Ziel-Paar. Strategie: • konstruiere zunächst Wegesystem P´ = ∪s,t P´s,t basierend auf optimaler Lösung zur Flusszahl • Konstruiere aus P´ Wegesystem P = ∪s,t Ps,t ähnlich zum Beweis von Theorem 1.14
Valiants Trick Konstruktion von P´: • Sei G=(V,E,c) das gegebene Netzwerk. • S: optimale Lösung zum speziellen Mehrfachfluss-problem für G, das der Flusszahl F zugrunde liegt, d.h. F=max{C(S),D(S)} • fv,w: Fluss in S von v nach w • Für jeden Pfad p von v nach w in fv,w fügen wir den Pfad p zu P´v,w hinzu mit Gewicht w(p) = |fp|/|fv,w|. • Damit gilt dann ∑p∈P´v,w w(p) = 1, d.h. P´ = ∪s,t P´s,t ist ein gültiges Wegesystem.
Valiants Trick Konstruktion von P: • Ps,t = { p=q1∘q2 | q1∈P´s,vund q2∈P´v,tfür ein v∈V } (∘: Konkatenation) • Für alle p=q1∘q2in Ps,t: w(p) = w(q1)w(q2)c(v)/c(V). • Damit ist ∑p∈Ps,t w(p) = 1, d.h. P = ∪s,t Ps,t ist ein gültiges Wegesystem. v s t
Valiants Trick Eigenschaften von P: • Betrachte beliebiges BMFP mit Anforderungen ds,t für jedes Quell-Ziel-Paar (s,t) • Betrachte nur die erste Hälfte aller Wege in P für BMFP • Flusswert von s nach v:∑t ds,t∑q1∈P´s,v∑q2∈P´v,t w(q1)w(q2)c(v)/c(V) = c(s)c(v)/c(V) • Also Congestion F, da spezielles BMFP für F! v s t
Valiants Trick Resultat: Theorem 2.6: Mit Valiants Trick kann in jedem Netzwerk mit Flusszahl F jedes BMFP mit Congestion höchstens 2F und Dilation höchstens 2F geroutet werden.
Valiants Trick Beispiel: d-dimensionaler Hypercube • Ein optimales Wegesystem für das spezielle BMFP zur Flusszahl F ist die Bitanpassungsstrategie. • P´s,tbesteht lediglich aus einem Weg für jedes Knotenpaar (s,t) im Hypercube, d.h. P´s,t = {ps,t} für einen Weg ps,t mit w(ps,t)=1. • Also ist Ps,t ={ ps,v,t = ps,v∘pv,t | v∈V } mit w(ps,v,t)=d/(dn) = 1/n.
Valiants Trick Ist das Wegesystem wirklich gut? • Betrachte eine beliebige Permutation p. • Zunächst wird für jede Quelle s das Paket über n Knoten v „verteilt“ • Dilation: maximal d bis v, also insgesamt maximal 2d. • Congestion: betrachte feste Kante e entlang Dimension i{1,…,d}. • Mit der Bitanpassungsstrategie gibt es 2i-1 mögliche Quellen für e. • Weiterhin können 2d-i Ziele nach Überquerung von e erreicht werden. • D.h. die Anzahl der Quell-Ziel-Paare, dessen Pfade e kreuzen, ist gleich 2i-12d-i = 2d-1 = n/2. • Da jeder dieser Pfade ein Gewicht von 1/n hat, ist die Congestionn/2 1/n = ½. • Da diese Congestion zweimal entsteht (von der Quelle zum Zwischenziel, und vom Zwischenziel zum Ziel), ist die Congestion1.
Valiants Trick Allgemein folgt analog zu Theorem 2.6: Theorem 2.5: Mit Valiants Trick kann im Hypercube jedes BMFP mit Congestion höchstens d und Dilation höchstens 2d geroutet werden.
Oblivious Routing im Gitter Nahezu optimales Wegesystem für das spezielle BMFP zur Flusszahl F ist die x-y-Routingstrategie. Aus Theorem 2.6 folgt: mit Valiants Trick kann jedes BMFP im n×n-Gitter mit Dilation und Congestion maximal O(n) geroutet werden. Problem: für einige BMFPs viel bessere Lösungen möglich
Oblivious Routing im Gitter • Kürzeste Wege (x-y-Routing):niedrige Dilation, aber evtl. hohe Congestion • Valiants Trick:im worstcase Dilation und Congestion nahezu optimal, aber für Quell-Ziel-Paare geringer Distanz Dilation und Congestion viel zu hoch
Oblivious Routing im Gitter Beispiel: s1 s2 ... sm • x-y-Routing: • Dilation: OPT • Congestion: m t1 t2 ... tm
Oblivious Routing im Gitter Beispiel: s1 s2 ... sm • Valiants Trick: • Dilation: ~2n • Congestion: ~m t1 t2 ... tm
Oblivious Routing im Gitter Beispiel: s1 s2 ... sm • y-x-Routing: • Dilation: OPT • Congestion: OPT t1 t2 ... tm
Oblivious Routing im Gitter Beispiel: t1 t2 ... tm • y-x-Routing: • Dilation: OPT • Congestion: m s1 s2 ... sm
Oblivious Routing im Gitter Problem: Gibt es eine oblivious Routing-strategie für das n×n-Gitter, die für alle Routingprobleme nahezu optimale Congestion und Dilation erreicht? • COPT: bestmögliche Congestion (bel. Dilation) • DOPT: bestmögliche Dilation (= max. Distanz) Theorem 2.7: Es gibt eine oblivious Routing-strategie, die für jedes Mehrfachfluss-problem Congestion O(COPT log DOPT) und Dilation O(DOPT) hat.
Oblivious Routing im Gitter Routing von s nach t: • Sei Ms,tdas kleinste 2k×2k-Gitter (oder falls nicht möglich, das Gesamtgitter), das s in einer Ecke hat und t enthält. • Der Fluss von s nach t wird zunächst gleichmäßig über gemischtes x-y und y-x Routing auf ein 2×2-Gitter über s verteilt, dann auf ein 4×4-Gitter über s, usw., bis der Fluss gleichmäßig über Ms,t verteilt ist. • Danach wird der Fluss in umgekehrter Form nach t hin konzentriert. t s
Oblivious Routing im Gitter Routing von s nach t anschaulich:
Oblivious Routing im Gitter Beweis von Theorem 2.7: Dilation: • Angenommen, Ms,t ist ein 2k×2k-Gitter. Dann haben s und t eine Distanz von mindestens 2k-1. Auf der anderen Seite hat der längste Flusspfad unserer Routingstrategie eine Länge von höchstens2 Si=0k-12(2i-1) + 2(2k-1) ≤ 42k + 22k = 62k • Das ist nur um einen konstanten Faktor über der Distanz • Also ist die Dilation D=O(DOPT).
Oblivious Routing im Gitter Congestion: • Zu zeigen: für alle k ist die Congestion, die durch das Routing in den 2k×2k-Gittern der Quell-Ziel-Paare verursacht wird, O(COPT). • Da es nur log DOPTverschiedene k-Werte gibt, ist die Gesamtcongestion O(COPT log DOPT ). • Rest des Beweises: Tafel (siehe Skript)
Scheduling Zentrale Frage: wie bewegt man am effektivsten Pakete entlang der gewählten Wege? Modell: • Netzwerk mit gerichteten Kanten mit Kapazität 1. • Jede gerichtete Kante kann pro Zeiteinheit ein Paket befördern. • Pakete werden kontinuierlich in das Netzwerk injiziert (wie in der Realität). • Jedem Paket wird bei der Injektion ein fester Weg vorgegeben (wie beim oblivious Routing). • Injektionen und Wegewahl sind unter gegnerischer Kontrolle (zur Ermittlung des worst-case Verhaltens), aber Gegner darf nicht mehr Pakete injizieren als das Netzwerk verkraften kann.
Scheduling Gegnerisches Injektionsmodell: • (w,l)-beschränkter Gegner für ein w∈ℕ und 0<l≤1 • Für jedes Zeitintervall der Länge w und jede gerichtete Kante e injiziert der Gegner höchstens lw Pakete mit Pfaden, die über everlaufen. • Da jede gerichtete Kante nur ein Paket pro Zeiteinheit befördern kann, muss l≤1 sein, damit die Anzahl der Pakete im System nicht gegen läuft
Scheduling • Scheduling-Protokoll: bestimmt, in welcher Reihenfolge die Pakete die Kanten durchlaufen. B A
Scheduling • Scheduling-Protokoll: bestimmt, in welcher Reihenfolge die Pakete die Kanten durchlaufen. • Ein Scheduling-Protokoll ist stabil für ein l und ein Netzwerk G, falls die Anzahl der Pakete in Gfür jeden beliebigen (w,l)-beschränkten Gegner zu jedem Zeitpunkt beschränkt ist. • Ein Protokoll, das für alle l<1 und alle Netzwerke G stabil ist, heißt universell stabil.
Scheduling Annahme: jede Kante hat einen (prinzipiell unbeschränkten) Puffer für ausgehende Pakete. Einfache Queueing-Regeln für die Kantenpuffer: • FIFO (first in first out): bedient die Pakete in der Reihenfolge ihres Eintreffens im Puffer (Standard in Routern). • NTO (nearest to origin): gibt dem Paket Vorzug, das bisher den geringsten Weg zurückgelegt hat. • FTG (furthest to go): gibt dem Paket Vorzug, das noch den längsten Weg vor sich hat. • NTG (nearest to go): gibt dem Paket Vorzug, das noch den kürzesten Weg vor sich hat. • SIS (shortest in system): bevorzugt das jüngste Paket. • LIS (longest in system): bevorzugt das älteste Paket.
Universelle Stabilität Theorem 2.8: SIS ist universell stabil. Beweis:Tafel (siehe auch Skript) Theorem 2.9: LIS ist universell stabil. Beweis:Tafel (siehe auch Skript)
Universelle Stabilität Theorem 2.10: Für l≥0,85 gibt es ein Netzwerk und einen Gegner, für den FIFO instabil ist. Beweis: Induktion: in Phase j mind s+j Pakete mit Weg (eifi) in Puffer von ei für i=j mod 2 und konstantes s e0 f´1 f1 f´0 f0 e1
Universelle Stabilität Induktionsanfang: Phase 1 s+2 Pfade, über die Pakete mit Restweg (e0f0) injiziert werden. e0 f´1 f1 f´0 f0 e1
Universelle Stabilität Betrachte o.B.d.A. beliebige gerade Phase j. Anfangs: m=s+j Pakete mit Restweg (e0f0) m × (e0f0) e0 f1 f´0 f0 e1
Universelle Stabilität Betrachte o.B.d.A. beliebige gerade Phase j. Stufe 1: m Schritte Injektionen: lm × (e0f´0e1f1), lm × (f0) lm × (e0f´0e1f1) lm × (f0) e0 m × (e0f0) f1 f´0 f0 e1
Universelle Stabilität Betrachte o.B.d.A. beliebige gerade Phase j. Stufe 1: m Schritte Am Ende übrig: lm × (e0f´0e1f1) lm × (f0) e0 f1 f´0 f0 e1
Universelle Stabilität Betrachte o.B.d.A. beliebige gerade Phase j. Stufe 2: lm Schritte Injektionen: l2m × (f0e1f1), l2m × (f´0) l2m × (f0e1f1) lm × (e0f´0e1f1) e0 lm × (f0) l2m × (f´0) f1 f´0 f0 mischen sich e1
Universelle Stabilität Betrachte o.B.d.A. beliebige gerade Phase j. Stufe 2: lm Schritte Am Ende übrig: l2m/(1+l) × (f´0e1f1), l3m/(1+l) × (f´0) l2m × (f0e1f1) e0 f1 f´0 f0 e1
Universelle Stabilität Betrachte o.B.d.A. beliebige gerade Phase j. Stufe 3: l2m Schritte Injektionen: l3m × (e1f1) l2m/(1+l) × (f´0e1f1), l3m/(1+l) × (f´0) l2m × (f0e1f1) e0 f1 f´0 f0 l3m × (e1f1) e1
Universelle Stabilität Betrachte o.B.d.A. beliebige gerade Phase j. Stufe 3: l2m Schritte Am Ende übrig: e0 f1 f´0 f0 l3m+l2m/(1+l) × (e1f1) e1
Universelle Stabilität Betrachte o.B.d.A. beliebige gerade Phase j. Stufe 3: l2m Schritte Für l≥0,85 gilt l3+l2/(1+l)>1, d.h. >m × (e1f1). e0 f1 f´0 f0 l3m+l2m(1+l) × (e1f1) e1
Universelle Stabilität • D.h. FIFO im Gitter kann nicht Stabilität für alle l<1 sicherstellen. • Bramson: FIFO stabil für stochastisches Injektionsmodell. Vorteil von FIFO: robust gegen Manipulation von Paketen (in LIS können z.B. Pakete durch ein sehr hohes Alter bevorzugt behandelt werden).