IV 100 - Paralelné a distribuované výpo ty Dana Pardubská
2
Obsah 1 Model distribuovaných výpo tov 7 1.1 Formálny popis...................................... 7 1.2 Overovanie vlastností prechodových systémov..................... 9 1.3 Následnos (causality order)............................... 11 1.4 Topológia siete...................................... 14 1.5 Vlastnosti kanálov.................................... 14 1.6 Vedomosti procesu/procesora.............................. 15 1.7 Zloºitos distribuovaných algoritmov.......................... 15 2 Routing/smerovanie 17 2.1 Smerovanie packetov pod a cie a............................ 17 2.2 Výpo et najkrat²ích ciest................................ 19 2.2.1 Touegov algoritmus............................... 19 2.2.2 Vylep²ený Toueg................................. 21 2.2.3 Od sekven ných algoritmov k distribuovaným................. 22 2.2.4 Alternatívne rie²enie: Chandy-Misra...................... 23 2.2.5 Netchange - najkrat²ie cesty v prítomnosti chýb kanálov........... 26 2.3 Routovanie s kompaktnými tabu kami......................... 29 2.3.1 Tree-labeling Santoro-Khatib.......................... 30 2.3.2 Interval routing van Leeuwen, Tan...................... 30 2.3.3 prex-routing................................... 32 3 Vyhýbanie sa uviaznutiu 35 3.1 trukturované rie²enie.................................. 36 3.2 Ne²trukturované rie²enie................................. 39 4 Preh adávanie grafov 41 4.1 Vlnové algoritmy..................................... 42 4.1.1 Ekvivalentné problémy.............................. 42 4.1.2 Vlnové algoritmy na kruhu a strome...................... 43 4.1.3 Shout & Echo................................... 45 4.1.4 Fázový algoritmus - centralizovaný vlnový pre orientované grafy...... 46 4.1.5 Finn - decentralizovaný vlnový algoritmus................... 46 4.2 Traverzovanie....................................... 47 4.2.1 Traverzovanie torusu a hyperkocky....................... 47 4.2.2 Traverzovanie súvislých sietí........................... 48 5 Algoritmy výberu - Vo ba ²éfa - election/leader election 53 5.1 Výber a vlny....................................... 54 5.2 Výber na orientovanom kruhu s jednosmernou komunikáciou............ 54 5.2.1 LeLann a Chang & Roberts........................... 54 5.2.2 Výber na kruhoch s O(NlogN) správami................... 57 3
4 OBSAH 5.2.3 Dolný odhad - Pachl, Korach, Rotem, 1984.................. 58 5.3 Výber na v²eobecných sie ach.............................. 60 5.3.1 Aplikácia centralizovaných v n......................... 61 5.3.2 Algoritmus Gallager-Humblet-Spira, výber minimálnou kostrou....... 62 5.4 Algoritmus Korach-Kutten-Moran, výber vychádzajúci z traverzovania.... 65 5.4.1 Modulárna kon²trukcia............................. 65 5.5 Výber na úplných grafoch so zmyslom pre orientáciu................ 68 5.5.1 Algoritmus paralelného získavania potvrdení - O(n 2 ) správ, O(1) as.... 68 5.5.2 Algoritmus sekven ného získavania potvrdení................. 68 5.5.3 Algoritmus SINGH - O(N) správ, O(log N) as................ 70 5.5.4 DOBREV- algoritmus Target & Bullets,O(N) správ, O(log log N) as... 75 6 Detekcia ukon enia 79 6.1 Dolné odhady....................................... 80 6.1.1 terminovanie procesov.............................. 81 6.2 Výpo tový strom a les.................................. 82 6.2.1 Dijkstra-Scholten................................. 82 6.2.2 Shavit-Francez.................................. 83 6.3 Rie²enia zaloºené na vlnových algoritmoch....................... 85 6.3.1 Dijkstra-Feijen-Van Gasteren.......................... 85 6.3.2 Safra - po ítanie správ základného algoritmu................. 86 6.3.3 Iné rie²enia.................................... 88 7 Anonymné siete 93 7.1 Pravdepodobnostné algoritmy pojmy a denície................... 93 7.1.1 Korektnos a zloºitos.............................. 94 7.1.2 Klasikácia pravdepodobnostných algoritmov................. 94 7.1.3 Problémy..................................... 95 7.2 Deterministické algoritmy................................ 95 7.2.1 Po ítanie na kruhu so znalos ou jeho ve kosti................. 96 7.2.2 Po ítanie na kruhu bez znalosti jeho ve kosti................. 96 7.3 Pravdepodobnostná vo ba ²éfa............................. 97 7.3.1 Itai-Rodeh výber so znalos ou ve kosti kruhu................ 97 7.3.2 Algoritmus výberu v ubovo nej sieti známej ve kosti............ 99 7.4 Výpo et ve kosti siete.................................. 100 7.4.1 Itai-Rodeh: Monte Carlo výpo et ve kosti kruhu............... 101 8 Synchronizácia v distribuovaných systémoch 105 8.1 Výber v synchronizovaných sie ach pri známej ve kosti siete........... 107 8.2 Výber v synchronizovaných sie ach - bez znalosti ve kosti siete........... 107 8.3 Algoritmy synchronizácie................................ 108 8.4 Centralizovaný asynchrónny BFS so zakomponovanou synchronizáciou....... 111 9 Algoritmy v prítomnosti chýb 113 9.1 Odolnos vo i chybám v asynchrónnych systémoch.................. 114 9.2 Fatálne chyby....................................... 115 9.2.1 Dohoda - negatívny výsledok.......................... 115 9.2.2 Od za iatku m tve procesy........................... 117 9.2.3 Deterministicky rie²ite né problémy...................... 118 9.2.4 Pravdepodobnostné rie²enie problému zhody................. 121 9.3 Byzantské chyby...................................... 123 9.3.1 Algoritmus dohody v prítomnosti byzantských chýb............. 123 9.3.2 Asynchrónny broadcast v prítomnosti t byzantských chýb.......... 125 9.4 Chyby v synchronizovaných systémoch......................... 127
OBSAH 5 9.4.1 Broadcast v synchronizovaných distribuovaných systémoch......... 127 9.4.2 Autentikácia................................... 131 9.4.3 Synchronizácia hodín............................... 133 9.5 Detekcia chýb....................................... 134 9.5.1 Implementácia detektorov chýb......................... 135 9.5.2 Dohoda s detektorom chýb........................... 136 10 Stabilizácia 139 10.1 Príklady stabilizujúcich algoritmov........................... 140 10.1.1 Problém vzájomného vylú enia........................ 140 10.1.2 Local Mutual Exclusion............................. 141 10.1.3 Maximálne párovanie.............................. 145 10.1.4 Kon²trukcia kostry................................. 147 10.2 Skladanie protokolov................................... 148 10.3 Výpo et minimálnych ciest............................... 149
6 OBSAH
Kapitola 1 Model distribuovaných výpo tov Distribuovaný systém sie G = (V, E), V = n procesorov, E = m kanálov Procesor lokálna pamä komunikácia so susedmi výmenou správ správanie popísané stavmi, riadené správami Formálny popis Burns(1980), Lynch, Fischer(1981), Angluin(1980) Predpoklady modelu distribuovaných výpo tov Asynchrónnos procesory komunikácia poradie správ Nie je centrálne riadený Procesory majú jednozna né identika né ísla(anonymné siete bez Iƒ) Komunikácia procesorov výmenou správ ƒas lokálneho výpo tu zanedbate ný vzh adom k asu potrebnému na prenos Znalos o topológii striktne lokálna (zoznam susedov) lokálna + ²truktúra siete (kruh, strom,...) Plne distribuovaný systém kaºdý má rovnaký algoritmus 1.1 Formálny popis Distribuovaný systém je ur ený mnoºinou procesov a komunika ným podsystémom. Pri jeho formálnom popise budeme vychádza z formalizmu prechodových systémov. Budeme potom alternatívne pouºíva pojmy prechodový systémproces; konguráciastav; prechodudalos. Pritom udalos ou rozumieme jednu z troch typov udalostí interná(realizuje sa v procese) send (posielanie správy) receive(prijatie správy) 7
8 KAPITOLA 1. MODEL DISTRIBUOVANÝCH VÝPOƒTOV Prechodový systém S = (C,, I), kde C je mnoºina kongurácií, C C, je prechodová relácia, γ δ I, I C, je mnoºina po iato ných kongurácií Vykonanie (execution) S je maximálna postupnos kongurácií E = (γ 0, γ 1, γ 2,...), kde γ 0 I, i γ i γ i+1 Terminálna kongurácia γ - neexistuje δ : γ δ δ je dosiahnute ná z γ (γ δ; γ δ) ak γ = γ 0, γ 1, γ 2,...γ k = δ, γ i γ i+1, 0 i < k δ je dosiahnute ná, ak γ δ pre γ I DS je mnoºina komunikujúcich procesorov. Ak teda chceme popísa algoritmus DS, popí²eme najprv algoritmus jednotlivých procesov a cez ne denujeme algoritmus systému ako celku. Denícia 1 Lokálny algoritmus procesu je (Z, I, i, s, r ), kde Z je mnoºina stavov I je mnoºina po iato ných stavov (I Z) i Z Z je interná udalos s Z M Z je send udalos r Z M Z je receive udalos M je mnoºina moºných správ, M(M) je multimnoºina Nech c, d sú kongurácie. Hovoríme, ºe systém prechádza z kongurácie c do kongurácie d (a pí²eme c d) ak c d (c, d) i alebo m M : ((c, m, d) s r ) Denícia 2 Distribuovaný algoritmus pre mnoºinu procesov P = {p 1,..., p N } je mnoºina lokálnych algoritmov, jeden pre kaºdý procesor z P. V po iato nej kongurácii je kaºdý procesor v po iato nom stave a v systéme na hranách neexistuje ºiadna správa. Pod a spôsobu realizácie výmeny správ rozli²ujeme dva druhy komunikácie - asynchrónnu a synchrónnu. Pri asynchrónnej komunikácii sú send a receive dve rôzne udalosti. Pri synchrónnej komunikácii predpokladáme, ºe poslanie a prijatie správy tvorí jedinú udalos. V jednom kroku/prechode sa aplikuje prechodová relácia iba jediného procesora. Formálne Denícia 3 Prechodový systém indukovaný distribuovaným algoritmom pre P = {p 1,..., p N } pod asynchrónnou komunikáciou je S = (C,, I), kde 1. C = {(c p1,..., c pn, M) : ( p P : c p Z p ), M M(M)} 2. = ( p P p ), kde p je mnoºina dvojíc (c p1,..., c pi,..., c pn, M 1 ), (c p1,..., c pi,..., c pn, M 2 ) (2a) (c pi, c pi ) i pi a M 1 = M 2 (2b) m M(c pi, m, c pi ) s pi a M 2 = M 1 m
1.2. OVEROVANIE VLASTNOSTÍ PRECHODOVÝCH SYSTÉMOV 9 (2c) m M(c pi, m, c pi ) r pi a M 1 = M 2 m 3. I = {(c p1,..., c pn, M) : ( p P c p I p ) M = } Vidíme, ºe pri asynchrónnej komunikácii je udalos aplikovate ná, ak príslu²ný procesor je v správnom stave a v mnoºine správ, ktoré sa nachádzajú na hranách, je (ak uvaºujeme o receive) vhodná správa. Predpokladáme, ºe kaºdá správa má jednozna néjo prijímate a, tzv. destination. Denícia 4 Prechodový systém indukovaný distribuovaným algoritmom pre P = {p 1,..., p N } pod synchrónnou komunikáciou je S = (C,, I), kde 1. C = {(c p1,..., c pn ) : ( p P : c p Z p ) 2. = ( p P p ) ( p,q P :p q pq ), kde p je mnoºina dvojíc (c p1,..., c pi,..., c pn ), (c p1,..., c pi,..., c pn ) : (c pi, c pi ) i pi pq je mnoºina dvojíc (..., c pi,..., c pj,... ), (..., c pi,..., c pj,... ) : m M(c pi, m, c pi ) s pi a (c pj, m, c pj ) r pj 3. I = {(c p1,..., c pn ) : ( p P c p I p )} V²imnime si, ºe mnoºina M stratila význam - ºiadne správy sa na hranách/kanáloch systému nenachádzajú. Synchrónne systémy sú obmedzenej²ie - kaºdé vykonanie pod a synchrónnej komunikácie je moºným vykonaním pri asynchrónnej komunikácii. 1.2 Overovanie vlastností prechodových systémov Overovanie vlastností prechodových systémov(korektnos a kone nos ) robíme asto pomocou predikátov. Vä ²inou sú to dva predikáty, denované na mnoºine kongurácií - bezpe nos a ºivotnos. Poºiadavka bezpe nosti - tvrdenie P je pravdivé v kaºdej kongurácii kaºdého vykonania algoritmu. Túto vlastnos vyuºívame na dokázanie korektnosti algoritmu/prechodového systému. Poºiadavka ºivotnosti/liveness - tvrdenie P je pravdivé v nejakej kongurácii kaºdého vykonania algoritmu. Túto vlastnos vyuºívame pri dôkaze kone nosti/ terminovania algoritmu. Nech S = (C,, I) je prechodový systém, P, Q sú predikáty na mnoºine kongurácií. Pí²eme {P } {Q} ak pre dvojicu kongurácií γ, δ takých, ºe γ δ platí: ak P (γ) tak Q(δ). Denícia 5 Hovoríme, ºe tvrdenie P je invariantom systému S, ak platí γ I, P (γ) {P } {P } Fakt 1 Ak P je invariantom S, tak P platí v kaºdej kongurácii kaºdého vykonania S. Uvedomme si, ºe naopak to neplatí(pre o?). Fakt 2 Nech Q je invariant S, Q P ( γ C). Potom P platí v kaºdej kongurácii kaºdého vykonania S. Dôkaz: Treba ukáza, ºe 1. γ I, P (γ) 2. {P } {P }
10 KAPITOLA 1. MODEL DISTRIBUOVANÝCH VÝPOƒTOV K 1. γ I Q je invariant, preto γ I, Q(γ) Q P, preto P (γ) K 2. Nech E = (γ 0, γ 1, γ 2,... ) je vykonanie S : γ 0 I, γ i γ i+1. Dôkaz indukciou. Q(γ 0 ), lebo Q je invariant, P (γ 0 ) pod a 1. γ i γ i+1, preto Q(γ i+1 ) (lebo Q(γ i ) Q(γ i+1 ) je z denície inavriantu) Q(γ i+1 ) a Q P, tak P (γ i+1 ) al²ím pojmom, ktorý moºno vyuºi pri dôkazoch korektnosti DS, je pojem Q-derivátu. Denícia 6 Nech S je prechodový systém, P, Q tvrdenia. Hovoríme, ºe P je Q-derivát, ak 1. γ I, Q(γ) P (γ) 2. {Q P } {Q P } Inými slovami, P je Q-derivát, ak v systéme vyplýva z platnosti Q. Fakt 3 Ak Q je invariant a P je Q-derivát, tak Q P je invariant. Dôkaz: Treba ukáza, ºe K 1. K 2. 1. γ I Q(γ) P (γ) 2. Q P Q P γ I Q(γ) platí γq(γ) P (γ) Preto γ I Q(γ) P(γ) Nech γ δ, Q(γ) P (γ). Ke ºe ({Q(γ) P (γ)} {Q(δ) P (δ)}), Q je invariant, tak Q(δ), z oho vyplýva platnos P (δ) a tieº Q(δ) P (δ). Preto {Q P} {Q P} Teraz sa budeme venova dokazovaniu korektného ukon enia algoritmu. Nech S je prechodový systém, P (cie ) predikát. Ozna me term taký predikát, ktorý je (ne)pravdivý v (ne)terminálnych konguráciách. Denícia 7 Hovoríme, ºe systém S kon í korektne, ak predikát (term P ) v S vºdy platí. Uviaznutie je taká terminálna kongurácia, ke d sa cie P nedosiahol. Je zrejmé, ºe pojem korektného ukon enia negarantuje dosiahnutie terminálnej kongurácie systému. Dôkaz korektného terminovania tak v skuto nosti vyºaduje vyargumentova dve veci systém dosiahne terminálnu konguráciu v tejto terminálnej kongurácii platí cie ový predikát P. Podobne ako v prípade sekven ných algoritmov dokazujeme dosaºite nos terminálnej kongurácie DS vä ²inou pomocou normovacej funkcie. Zavedieme funkciu, ktorá kaºdej kongurácii DS priradí nejaké kvantitatívne ohodnotnie. Potom ukáºeme, ºe aplikovanie prechodovej relácie spôsobí pokles hodnoty tohto kvantitatívneho ohodnotenia. Ak je normovacia funkcia slu²ná, nemôºe existova (z h adiska tejto normovacej funkcie) nekone ná klesajúca postupnos. To poukazuje na kone nos realizácie algoritmu. Potom ostáva ukáza, ºe v kaºdej terminálnej kongurácii máme splnený cie. Zopakujme si:
1.3. NÁSLEDNOS (CAUSALITY ORDER) 11 Dobre zaloºená mnoºina je mnoºina s denovaným usporiadaním, pre ktoré neexistuje nekone ná klesajúca postupnos. ƒiasto né usporiadanie (W, <) je dobre zaloºené, ak neexistuje nekone ná klesajúca postupnos w 1 > w 2 >.... Denícia 8 Nech S je prechodový systém, P tvrdenie. Funkcia f z C do dobre zaloºenej mnoºiny W sa nazýva norma ( vzh adom na P) ak γ δ (f(γ) > f(δ) alebo P (δ)) Fakt 4 Nech S = (C,, I), P je (cie ) predikát. Ak systém skon í korektne a existuje norma f vzh adomk P, tak P platí v niektorej kongurácii kaºdého vykonania. Dôkaz: Nech E = (γ 0, γ 1, γ 2,... ) je vykonanie. 1. Nech E je kone ná, E = (γ 0, γ 1, γ 2,..., γ k ). Potom pre poslednú konguráciu γ k platí term(γ k ). Ke ºe term P, tak P (γ k ). 2. Nech E je nekone ná. Uvaºujme najdlh²í prex E = (γ 0, γ 1, γ 2,... ) taký, ºe v om P neplatí. Vzh adom k tomu, ºe existuje norma f, pre postupnos F = (f(γ 0 ), f(γ 1 ), f(γ 2 ),... ) platí: f(γ 0 ) > f(γ 1 ) > f(γ 2 ) >... Je to klesajúca postupnos, preto je kone ná. To znamená, ºe existuje také k, ºe F = (f(γ 0 ), f(γ 1 ), f(γ 2 ),..., f(γ k )) a P (γ k+1 ). 1.3 Následnos (causality order) Niektoré udalosti sa realizujú na tom istom, iné na rôznych procesoroch. Niektoré z nich vyºadujú výsledky iných udalostí, iné sú od nich akosi nezávislé. V nasledujúcej asti budeme denova pojem kauzality, ktorý nám umoºní jednotlivé udalosti (aspo niektoré z nich) usporiada. Denícia 9 Nech E = (γ 0, γ 1, γ 2,... ) je vykonanie. udalostí v E, je najmen²ia relácia, ktorá sp a Relácia, ktorej hovoríme následnos 1. Ak e, f sú rôzne udalosti toho istého procesora, e sa realizovalo je pred f, tak e f 2. Ak s je send, r odpovedajúca receive udalos, tak s r 3. je tranzitívna ƒiasto né usporiadanie a b : a b a = b Súbeºne beºiace(concurrent) procesy (a b) sú také procesy a, b, pre ktoré neplatí ani a b ani b a. Ku kaºdému vykonaniu E = (γ 0, γ 1, γ 2,... ) existuje odpovedajúca postupnos udalostí E = (e 0, e 1, e 2,... ) takých, ºe e i spôsobilo prechod γ i γ i+1. Majme realizáciu systému, v ktorej je význam udalostí a, b, c, d, e, f nasledovný: a - procesor P 1 posiela správu procesoru P 2 b - procesor P 2 prijal správu od procesora P 1 c - procesor P 2 posiela správu procesoru P 3 d - procesor P 3 prijal správu od procesora P 2
12 KAPITOLA 1. MODEL DISTRIBUOVANÝCH VÝPOƒTOV e - procesor P 2 posiela správu procesoru P 1 f - procesor P 1 prijal správu od procesora P 2 (Kvôli lep²ej názornosti sme udalosti neindexovali.) Túto realizáciu môºme gracky znázorni tzv.time-space diagramom; ²ípka spája send a odpovedajúcu receive udalos ; v smere x ide as, v smere y ísla procesorov. Relácia následnosti(kauzálnej závislosti) nám umoº uje hovori o udalostiach závislých a nezávislých. Ako ukazuje nasledujúce tvrdenie, pri nezávislých udalostiach nezáleºí na poradí ich realizácie. Veta 1 Nech γ je kongurácia, e p a e q sú udalosti rôznych procesov p, q, aplikovate né v kongurácii γ. Potom udalos e p je aplikovate ná v e q (γ), e q je aplikovate ná v e p (γ) a e p (e q (γ)) = e q (e p (γ)). Dôkaz: Aby sme dokázali platnos tohto tvrdenia, musíme ukáza, ºe bez oh adu na to, ktorá z udalostí sa realizuje prvá, tá druhá sa tieº môºe realizova. Navy²e, výsledok je nezávislý od poradia, v ktorom sa vykonávali. Správy sú jednozna ne spojené s konkrétnym procesorom e p, e q nemôºu by odpovedajúce send/receive udalosti Formálne: S kaºdou udalos ou procesu môºme stotoºni ²tvoricu c, X, Y, d, kde c/d sú stavy procesu pred/po udalosti a X, resp. Y sú správy, ktoré príslu²ný proces v tejto udalosti posiela, resp. prijíma. Potom { (cp, X p q p, Y p, d p ), pre proces p (c q, X q, Y q, d q ), pre proces q a X p X q. Zrejme (((M X p ) Y p ) X q ) Y q = M {X p X q } {Y p Y q } = (((M X q ) Y q ) X p ) Y p
1.3. NÁSLEDNOS (CAUSALITY ORDER) 13 Nezávislé udalosti teda môºme prehadzova, ak neporu²íme následnos. Vonkaj²í pozorovate nie je dôleºitý, podstatné je, aby to prehodenie nezbadali jednotlivé procesy. Má to význam pri dôkazoch. (Posledné poradie na obrázku nie je prípustné) Nech E = (γ 0, γ 1, γ 2,... ) je vykonanie E = (e 0, e 1, e 2,... ) odpovedajúca postupnos udalostí F = (f 0, f 1, f 2,... ) konzistentná permutácia - f i f j i j F vykonanie s postupnos ou udalostí F. Potom platí: Fakt 5 F denuje jednozna né vykonanie F, ktoré za ína v po iato nej kongurácii E, má rovnaký po et udalostí ako E, posledná kongurácia F je poslednou konguráciou E. Ekvivalentné vykonania teda denujú triedu ekvivalencie A teraz uº môºme denova výpo et distribuovaného algoritmu ako triedu ekvivalencie vykonaní tohto algoritmu. Vykonávanie udalostí nám môºe pomôc denova hodiny/ as. Udalosti o íslujeme íslami z usporiadanej mnoºina ( napr. prirodzené ísla). Prirodzene by sme o akávali, ºe udalosti, ktoré MUSIA nasledova v nejakom poradí, o íslujeme konzistentne s týmto poradím. Odpovedajú tomu logické hodiny. Denícia 10 Nech Θ je funkcia z mnoºiny udalostí do usporiadanej mnoºiny. Θ sú logické hodiny ak a b implikuje Θ(a) < Θ(b) Nieko ko príkladov logických hodín: Poradie - ak je vykonanie denované postupnos ou udalostí E = (e 0, e 1, e 2,... ), denujeme Θ(e i ) = i Real-time hodiny - procesor má hardwareové hodiny ( o kazí deníciu DS) Vektorové hodiny - a b Θ(a) < Θ(b) (súbeºne beºiace procesy majú neporovnate né hodnoty) Θ v (a) = (a 1, a 2,..., a n ), kde a i je maximálne íslo udalosti e v procesore p i, pre ktorú e a
14 KAPITOLA 1. MODEL DISTRIBUOVANÝCH VÝPOƒTOV Lamportove hodiny Θ(a) sa denuje ako d ºku najdlh²ej postupnosti (e 0, e 1, e 2,..., e k ) takej, ºe e 0 e 1 e 2 e k = a Ak b je interná alebo send udalos, a predchádzajúca udalos toho istého procesora, tak Θ L (b) = Θ L (a) + 1 Ak r je receive udalos, i predchádzajúca udalos toho istého procesora, s odpovedajúca send udalos, tak Θ L (r) = max{θ L (i), Θ L (s)} + 1 Ak a je prvá udalos, tak Θ L (a) = 0 Význam Lamportových hodín spo íva v tom, ºe sa dajú dodenova do procesora. Procesor si musí pamäta íslo poslednej udalosti. Θ p íslo poslednej udalosti v procesore p Θ m íslo udalosti-posielania správy m Navy²e, spolu so správami musíme posiela aj as, kedy boli posielané. 1.4 Topológia siete Ako sme uº povedali, distribuovaný systém moºno popísa ako sie, v uzloch ktorej sú umiestnené procesory. Sie = mnoºina procesorov+komunika ný subsystém (graf) Medzi naj astej²ie uvaºované typy prepojenia patria kruh (jednoduché; token ring) strom (rýchle výpo ty; v aka kostre-prenosite né) hviezda (master-slave; pozor na zranite nos centra) úplný graf hyperkocka HC n = (V, E), N = 2 n, V = {0, 1} n ((a 0, a 1,..., a n ), (b 0, b 1,..., b n )) E!i a i b i Z h adiska stability topológie hovoríme o statickej( nemennej) a dynamickej topológii. 1.5 Vlastnosti kanálov V súvislosti s kvalitou kanálov zvaºujeme Spo ahlivos - správy sa nestrácajú/neduplikujú/nevznikajú. Ak kanál nie je spo ahlivý, môºeme ma Strata správy = modelované odstránením správy z mnoºiny M
1.6. VEDOMOSTI PROCESU/PROCESORA 15 Zmena správy = modelujeme prechodom, ktorý zmení jednu správu z M Duplikácia = prechod, ktorý kopíruje správu Vznik správy = modelujeme prechodom, pri ktorom pribudne správa do M FIFO - zachováva poradie, v ktorom do správy vstupujú. Toto vä ²inou nepredpokladáme. Modelujeme to radmi pre kaºdý kanál, o priná²a nový potenciálny zdroj chyby - predbiehanie správ. Kapacita - denícia predpokladá neobmedzenú kapacitu kanálov. 1.6 Vedomosti procesu/procesora Na kvalitu a efektívnos algoritmov vplývajú vedomosti jednotlivých procesov/procesorov o systéme. O aké vedomosti sa jedná? Topologická informácia ƒísla procesorov, polomer, topológia Zmysel pre orientáciu(konzistentné ozna enie hrán so smermi; vrchol vie, ktorý sused je prvý, druhý,... z ava doprava/v smere hod. ru i iek) Identita procesu - pomenovaná sie ( proces má cez premennú prístup k svojmu íslu; táto premenná je na za iatku iniciovaná na íslo toho procesu), anonymná sie Susedné identity - nepredpokladáme; priame vs. nepriame adresovanie pri priamom adresovaní procesor p posiela správu pre procesor q tak, ºe ju po²le cez kanál priamo procesoru q pri nepriamom adresovaní sa pre procesor p javí procesor q ako a, pre r ako b, pre s ako c 1.7 Zloºitos distribuovaných algoritmov V súvislosti so zloºitos ou distribuovaných algoritmov uvaºujeme viacero mier zloºitostí. Zvaºujeme Po et správ - myslí sa celkovo prenesený po et správ Bitová - myslíme po et prenesených bitov; vä ²inou predpokladáme správy d ºky log n aby sa dali prená²a ísla procesov
16 KAPITOLA 1. MODEL DISTRIBUOVANÝCH VÝPOƒTOV Priestorová - vzh adom na jeden proces ƒasová - idealizované meranie asu ƒas spracovania je nulový Prenosový as najviac jednotka asu ƒasová zloºitos je as spotrebovaný vzh adom na tieto predpoklady Ak nepovieme inak, Sie je silne súvislá Komunikácia je asynchrónna Kanály sú FIFO Kanály nestrácajú správy Správy sú doru ené v kone nom ase
Kapitola 2 Routing/smerovanie V tejto asti sa budeme venova problému routovania - smerovania packetov do cie a. Kaºdý vrchol u má v pamäti uloºenú routovaciu tabu ku, ktorá pre kaºdý vrchol v u obsahuje suseda w takého, ºe packet smerujúci do vrchola v je z vrchola u posunutý do w. Routovanie teda pozostáva z dvoch astí - výpo tu routovacích tabuliek a samotného posúvania packetov pod a nich. Kritériá dobrého routovania: Korektnos - predpokladáme, ºe kaºdý packet je v kone nom ase doru ený. Ak nie(chyby kanálov), povieme to. Uvaºujú sa rôzne typy chýb - najhor²ia je, ºe je doru ená nekorektná správa. Zloºitos po ítania tabuliek - v²ímame si zloºitos výpo tu tabuliek, ale aj potrebnej pamäte. Vä ²inou ide proti sebe ve kos tabu ky, ktorú si pamätáme a po et správ, ktoré musíme v priebehu routovania prekomunikova. Efektívnos - vz ahuje sa na pouºívanie optimálnych ciest. Pritom optimalita sa uvaºuje vzh adom na - po et úsekov, cez ktoré správa prejde (vlastne po et hrán pri neohodnotenom grafe)-min hop - d ºku cesty (pri ohodnotených hranách) - d ºku zdrºania na ceste... Robustnos - Prepo ítavanie tabuliek (pri zmene v topológii). Adaptabilita tabuliek, ktorá eliminuje/zniºuje pre aºenos kanálov. Predpokladáme, ºe vrcholy sú obsluhované rovnomerne. 2.1 Smerovanie packetov pod a cie a Problémom je doru i packet na poºadovanú adresu. Pre rie²enie tohto problému existuje optimálny algoritmus v prípade, ºe cena posielania je nezávislá od momentálneho pouºívania cena zre azenia ciest je sú et ciest jednotlivých ciest graf neobsahuje cyklus zápornej d ºky Hovoríme, ºe cesta z u do v je optimálna, ak neexistuje krat²ia. Fakt 6 Ak existuje cesta z u do v, tak existuje jednoduchá optimálna cesta. 17
18 KAPITOLA 2. ROUTING/SMEROVANIE Sta í uvedomi, ºe z cesty môºme odstra ova cykly dovtedy, kým ostane jednoduchou (a teda v na²om ponímaní optimálnou) cestou. Nech u, v sú dva vrcholy v grafe. Cestu v grafe, ktorá vychádza z vrchola u a kon í vo vrchole v nazveme u v cestou. Kvôli routovaniu po najkrat²ích cestách potrebujeme pre kaºdú dvojicu vrcholov u, v nájs najkrat²iu u v cestu. Za nime jednoduchým faktom. Fakt 7 Nech G = (V, E) je súvislý graf. Pre kaºdý vrchol/cie d V existuje strom T d = (V, E d ), E d E tak, ºe pre kaºdý vrchol v V je v d cesta v strome T d najkrat²ou v d cestou v grafe G. Dôkaz pozostáva z kon²trukcie stromu T d. Kon²trukcia je iteratívna - za neme s kore om d a postupne kon²truujeme stromy T 0, T 1,..., T m, pri om T 0 = ({d}, ) T i = (V i, E i ), kde T i je podgraf grafu G, T i je podgraf grafu T i+1 w V i je w d cesta v T i optimálnou w d cestou v G. Nech w i+1 / V i a nech w i+1 d je optimálna cesta v G. Nech u je prvý vrchol na tejto ceste, ktorý patrí do V i. T i+1 vznikne z T i tak, ºe pripojíme w i+1 u k u. proces skon í vytvorením stromu T m so v²etkými vrcholmi. Vtedy T d := T m Takto vzniknutému stromu (resp. stromu s poºadovanými vlastnos ami) T d s kore om d hovoríme sink tree. Proces smerovania packetov pod a tabuliek teda prebieha nasledovne:
2.2. VÝPOƒET NAJKRAT ÍCH CIEST 19 Vypo ítaj sink-tree T u u V Uchovaj T u vo vrchole u T u [d] je otec vrchola u v sink-tree s kore om d Algorithm 1 smerovanie packetov if d = u then deliver lokálne else send packet do T u [d] packet prijatý/vygenerovaný vrcholom u smeruje do d Uvedomme si, ºe algoritmus predpokladá nielen to, ºe stromy T u poznáme, ale aj to, ºe poznáme optimálne cesty medzi v²etkými dvojicami vrcholov. Musíme ich preto najprv vypo íta. 2.2 Výpo et najkrat²ích ciest Teraz sa budeme venova po ítaniu najkrat²ích ciest. Za neme so sekven ným Ford-Warshall algoritmom, ktorý po íta najkrat²ie cesty dynamickým programovaním/iteratívne. K ú ovým pojmom je S-cesta, o je cesta, ktorej vnútorné vrcholy sú z mnoºiny S. Najkrat²iu u v cestu získame postupným porovnávaním s u v S-cestami, ke za íname s S = a postupneme zvä ²ujeme S tak, ºe na konci S = V. Nech G = (V, E) je ohodnotený orientovaný graf bez záporných cyklov; váhy ω(u, v) môºu by aj záporné. Algorithm 2 Sekven ný Floyd-Warshall algoritmus d S (u, v) ozna uje d ºku najkrat²ej u v cesty s vnútornými vrcholmi z mn.s inicializácia: d S (u, u) = d (u, v) = ω(u, v) pre (u, v) E, u v d (u, v) = pre (u, v) / E, u v iterácia: d S {w} (u, v) = min{d S (u, v), d S (u, w) + d S (w, v)} Údaje o d ºkach ciest si môºeme pamäta v matici - D S (u, v) obsahuje hodnotu d S (u, v). Hodnota S sa mení postupne, pri om v kaºdej iterácii pribudne do S jeden prvok - tzv. pivot. Vzh adom k tomu nie je nutné uvádza horný index S a namiesto D S (u, v) budeme písa D u [v]. Potom iteráciu moºno prepísa nasledovne iterácia: while S V do pick w V \ S; w-pivot for u, v V do D u [v] = min{d u [v], D u [w] + D w [v]} nie je krat²ie ís cez w? S := S {w} zvä ²enie mnoºiny S 2.2.1 Touegov algoritmus Po me sa zamyslie nad distribuovanou verziou tohto algoritmu. Výpo et kaºdého "riadku"d u (v); v V zrejme môºme realizova paralelne/distribuovane za predpokladu, ºe kaºdý vrchol pozná v²et-
20 KAPITOLA 2. ROUTING/SMEROVANIE ko, o k výpo tu potrebuje. Uvedomme si, ºe vo Floyd-Warshall algoritme pri výpo te D u [v] := min{d u [v]; D u [w]+d w [v]} predpokladáme znalos D w [v] pre kaºdý vrchol w. Aby to bola pravda, museli by sme si v kaºdom vrchole pamäta tabu ku ve kosti O(n 2 ). Toueg vo svojej distribuovanej verzii Floyd-Warshalla pouºíva vo vrchole men²iu pamä. Kaºdý vrchol u si pamätá len informácie, ktoré sa týkajú jeho samotného, teda v D u [v]. Vºdy, ke vrchol potrebuje informáciu D w [v], ktorú nemá, je nutná komunikácia. Predpokladáme: Cykly sú pozitívne Na za iatku výpo tu v²etky vrcholy poznajú V Vrcholy poznajú svojich susedov (v Neigh u ) Výber pivota sa robí pod a dopredu zvolenej stratégie S u = mnoºina vrcholov D u = pole váhvzdialeností V skuto nosti by sme chceli pozna nielen d ºky najkrat²ích ciest, ale aj tie najkrat²ie cesty. Kvôli tomu si budeme vo vrchole pamäta aj pole Nb u, ktoré v poloºke Nb u [v] obsahuje identikáciu vrchola, prvého na momentálne najkrat²ej u v ceste. Nb u = pole vrcholov(sused na najkrat²ej ceste) Jednoduchý Toueg - pre vrchol u; S u := ; for v V do inicializácia; while S V do vo ba pivota w; distribúcia D w [v] po sieti; for v V do aktualizácia D u [v], Nb u [v]; S u := S u {w} Schéma je totoºná s Floyd-Warshallovým algoritmom. Zmenili sa len jednotlivé fázy. Pri inicializácii musíme nastavi aj hodnoty Nb u. Ak neviem o ceste z u do v, tak jej d ºka je (momentálne) nekone ne ve ká a prvý vrchol na nej je nedenovaný. V²imnime si fázu pivota w. K aktualizácii informácií vrcholy potrebujú znalos D w [v], pri om w je pivot. Vo fáze s pivotom w teda distribúcia spo íva v broadcaste(²írení) riadka D w po sieti. Aby sme mohli identikova predchodcu na najkrat²ej ceste, nahradíme minimalizáciu podmienkami if-then-else. Zloºením potom dostaneme Fakt 8 Algoritmus Jednoduchý Toueg skon í po N opakovaniach hlavného cyklu. Po jeho skon ení je v D u [v] d ºka najkrat²ej u-v cesty, Nb u [v] obsahuje identikáciu prvého vrchola na nej (ak cesta existuje) alebo má nedenovanú hodnotu. Dôkaz (vyplýva z korektnosti Floyd-Warshallovho algoritmu) sa robí matematickou indukciou. Induk ný predpoklad - po ukon ení kaºdej fázy pivota platí u, D u [w] = d S (u, w)
2.2. VÝPOƒET NAJKRAT ÍCH CIEST 21 Algorithm 3 Jednoduchý Toueg: S u := ; for v V do if u = v then D u [v] := 0; Nb u [v] := else if (u, v) E then D u [v] := ω(u, v); Nb u [v] := v else if thend u [v] := ; Nb u [v] := while S V do pick w V \ S if u = w then broadcast D w elsereceive D w for v V do if D u [w] + D w [v] < D u [v] then D u [v] := D u [w] + D w [v]; Nb u [v] := Nb u [w] S u := S u {w} pre vrchol u w-pivot round, v²etci to isté Ak d S (u, w) < a u v, tak Nb u [w] je prvý kanál na najkrat²ej u w S-ceste 2.2.2 Vylep²ený Toueg Ak D u [w] =, tak test ïf D u [w] < "sa vo fáze aktualizácie D u [w], Nb u [v] vyhodnotí na false a preto nedochádza k zmene tabuliek. Túto informáciu máme nezávisle od hodnôt D w [v], preto ich nepotrebujeme vedie. To ale znamená, ºe informáciu o D w [v] potrebujú dosta len tie vrcholy u, pre ktoré v grafe existuje u w S-cesta (pre aktuálnu hodnotu S). Budeme im tú tabu ku posiela po najkrat²ích cestách - po cestách v grafe(sink-tree) T w. T w =(V w, E w ), kde u V w D u [w] (u, x) E w ak x je prvý na ceste u-w je strom s kore om w. Vieme, ºe otcom vrchola u v strome T w je Nb u [w]-pozri kon²trukciu T w. Informáciu D w [v] teda vrchol u dostane po hrane (Nb u [w], u). Po ktorej hrane ju v²ak má posla alej? Svojho syna v strome T w vrchol u nepozná. Pridáme preto fázu, v ktorej sa komunikáciou medzi vrcholmi vybudujú spojenia-hrany stromu T w. Vylep²enie: Ak D u [w] =, u nemení svoje tabu ky vo fáze s pivotom w strome T w broadcast D w [v] iba po Ak D u [w] <, u pozná otca, ale nie synov v T w, preto v oznámi svojmu susedovi u, i je jeho synom v T w alebo nie
22 KAPITOLA 2. ROUTING/SMEROVANIE u oznámi Nb u [w], ºe je jeho syn vo fáze s pivotom w Vytváranie hrán stromu T w prebieha tak, ºe kaºdý vrchol oznámi svojmu susedovi, i je jeho synom vo fáze s pivotom w. Aby vrchol v vedel, ºe v tejto fáze (s pivotom w) nemá syna, musí mu kaºdý sused okrem Nb u [w] oznámi, ºe nie je jeho synom. Prijaté správy si preto bude vrchol v tejto fáze po íta. V algoritme sa posielajú tri druhy správ: ys, w som tvoj syn vo fáze s pivotom w ns, w nie som tvoj syn vo fáze s pivotom w dtab, w, D broadcast riadka D w vo fáze s pivotom w Veta 2 Algoritmus vylep²ený Toueg skon í. Po jeho skon ení je v D u [v] d ºka najkrat²ej u v cesty, Nb u [v] obsahuje identikáciu prvého vrchola na nej (ak cesta existuje) alebo má nedenovanú hodnotu. Nech W je po et bitov posta ujúci na kódovanie mien aj váh. Potom po as vykonania algoritmu sa prekomunikuje O(N) správ - kanál O(N E ) správ - celkovo O(N 2 W ) bitov kanál O(N 3 W ) bitov celkovo. Pamä potrebná v jednotlivých procesoroch je O(N W ) bitov. K dôkazu vety: Po et opakovaní cyklu while je N. Posielam správu susedom, prijímam správu od suseda, posielam tabu ku synom v jednotlivých stromoch-takºe po kanáli ide nanajvý² 3N správ Ve kos správ - správy < ys, w > / < nys, w > majú ve kos W, tabu ka NW (len w vzdialenosti sa posielajú) celkovo teda N 2 W Po et správ - v jednom behu komunikujú v²etci so susedmi, preto sa prekomunikuje E správ, o celkovo dáva N E Po et bitov posiela sa max N 2 dtab správ a 2N E < ys, w > / < nys, w >, o vzh adom na ich ve kos dáva N 2.NW + 2N E = O(N 3 W ) Ak je splnené FIFO kanálov, netreba v správach posiela parameter w, ke ºe je jasné, ºe je fáza w. Inak ale treba. 2.2.3 Od sekven ných algoritmov k distribuovaným Pri popise dvoch predchádzajúcich algoritmov sme si mohli uvedomi kroky, ktoré sme spravili pri prechode od sekven ného Floyd-Warshall algoritmu k distribuovanému Toueg
2.2. VÝPOƒET NAJKRAT ÍCH CIEST 23 Algorithm 4 Vylep²ený Toueg Inicializácia D u, Nb u Za ni fázu (pre pivota w) for x Neigh u do if Nb u [w] = x then send ys, w do x elsesend nys, w to x num r ec u := 0; while num r ec u < Neigh u do receive < ys, w > alebo < nys, w >; num r ec u := num r ec u + 1 if D u [w] < then if u w then receive < dtab, w, d > od Nb u [w] for x Neigh u do if < ys, w > bol prijatý od x then send < dtab, w, d > do x ; S u := S u {w} ná rt pre vrchol u Vytvor v T w spojenie otec-syn u musí prija Neigh u správ Zú astni sa fázy (s pivotom w) lokálny update Premenné sekven ného algoritmu sme distribuovali medzi vrcholy (procesor si pamätá iba svoj riadok); výpo ty ostali lokálne Ak bolo treba vzdialenú premennú, vyºadovala sa komunikácia Komunikáciu sme zniºovali vyuºitím vlastností sekven ného algoritmu (obmedzili sme broadcast riadku D w [v] na posielanie po strome T w.) E²te stále nám ostali zlé vlastnosti Touegovho algoritmu kvôli pivotovi vyºadujeme znalos v²etkých vrcholov vyºadujeme informáciu, ktorá nie je dostupná ani vo vrchole ani v jeho susedoch?d(u, w) + d(w, v) < d(u, v)? Tieto zlé vlastnosti odstra uje nasledujúci alternatívny algoritmus. 2.2.4 Alternatívne rie²enie: Chandy-Misra Vylep²enie spo íva v inom po ítaní vzdialeností. 0, ak u=v; d(u, v) = min w Neighu {ω uv + d(w, u)}, inak. Algoritmus ChandyMisra je distribuovanou verziou, ktorá je zaloºená na algoritme Dijkstra. Zopakujme si preto najskôr sekven nú verziu. Po ítame vzdialenosti do vrchola s. Pre kaºdý vrchol u si pamätáme d u - d ºku doteraz najkrat²ej u-r cesty Nb u - prvý vrchol na nej Vrcholy zna kujeme. Na za iatku dostanú v²etky (okrem s) do asnú zna ku; len kore s zaradíme do mnoºiny T vrcholov s trvalou zna kou. V kaºdej iterácii nájdeme v mnoºine S vrchol v s minimálnou vzdialenos ou od s, prehodíme ho do mnoºiny T a v²etkých jeho susedov sa spýtame, i by nebolo krat²ie ís do s cez v. Ak áno, update informácií (d, Nb). Korektnos sa dokazuje indukciou. Induk ný predpoklad - v okamihu, ke vrchol v prechádza do mnoºiny T (dostáva trvalú zna ku) platí: d v je d ºka najkrat²ej v s cesty.
24 KAPITOLA 2. ROUTING/SMEROVANIE Algorithm 5 Dijkstra inicializácia: T {s}; S := V \ s; d r 0; Nb u s d u ω(u, s); Nb u s pre (u, s) E d u ; Nb u pre (u, s) / E výpo et while S do nech v je taký, ºe d v = min{d w, w S}; T T {v}; S S {v}; for w S do if d w < ω(w, v) + d v then d w ω(w, v) + d v Nb w v Zloºitos : Kaºdý vrchol v práve raz presúvame z S do T. Tento presun je spojený s aktualizáciou údajov susedov w vrchola v. preto je táto as úmerná O( E ). Okrem toho presunu v z S do T predchádza identikácia v (h adáme minimum z mnoºiny S), Celkovú zloºitos tak máme O(n 2 ). V distribuovanej verzii budeme udrºiava informáciu nasledovne (budujeme vlastne sink-tree s kore om s): vo vrchole u bude informácia d u a Nb u S, T sú v grafe uloºené implicitne. Vrchol, ktorý "dostáva trvalú zna kuöznámi v²etkým ostatným, aká je jeho vzdialenos ku kore u kaºdé vylep²enie oznamuje vrchol v²etkým ostatným Na rozdiel od Dijkstra v²ak po ítame minimálnu cestu pre v²etky dvojice vrcholov - v systéme sa sú asne po íta n distribuovaných verzií algoritmu Dijkstra. Takto získaný Algoritmus Chandy Misra patrí do kategórie tzv. difúznych algoritmov vrcholy sa zapájajú do algoritmu len po prijatí správy. Algorithm 6 Chandy-Misra Inicializácia - D u [w] ; Nb u Výpo et pre vrchol v (kore v kostry sa zobudil) D v [v] 0; w Neigh v send < mydist, v, 0 > while nie je koniec do for w V do prijmi správu; spracuj prijatú správu Na za iatku výpo tu vzdialeností k vrcholu v je vrchol(kore ) v jediný, ktorý denitívne vie, ºe jeho D v [v] = 0, Nb v [v] = v. Oznámi túto skuto nos ostatným vrcholom. Tí túto novinku spracujú a ak treba, oznámia novinku alej. Kaºdý vrchol, ktorý dostane informáciu o denitívnej vzdialenosti nejakého vrchola k vrcholu v si skontroluje, i by nebolo výhodnej²ie ís do vrchola v cez neho. Potom posiela alej svoju vzdialenos od kore a. Posielané správy sú tvaru < mydist, v, d > - oznamujeme nimi svojmu susedovi, ºe na²a vzdialenos k vrcholu v je d.
2.2. VÝPOƒET NAJKRAT ÍCH CIEST 25 Spracovanie < mydist, v, d > receive < mydist, v, d > od w; if d + ω(uv) < D u [v] then begin D u [v] := d + ω(uv); Nb u [v] := w; forall x Neigh u do send < mydist, v, D u [v] > do x end; Korektnos vyplýva z nasledujúceho tvrdenia Fakt 9 V kaºdej realizácii algoritmu Chandy-Misra(CHM) sa dosiahne kongurácia, v ktorej u V D u [v] d(u, v). Kvôli dôkazu tohto tvrdenia si o íslujeme vrcholy v T v tak, ºe otec má men²ie íslo ako syn. Potom tvrdenie dokáºeme matematickou indukciou. IP j N 1 dosiahneme konguráciu, v ktorej J=0 platí J+1 Uvaºujme vrchol v(j + 1) v kongurácii, ke platí IP pre j. Najkrat²ia cesta z v(j + 1) do kore a v za ína vrcholom vi, i < j + 1, preto pre vi platí IP. V okamihu, ke sa vi nastavilo na D vi [v], poslalo susedom správu < mydist, v, D vi [v] >. To znamená, ºe vrchol v(j + 1) sa o existencii tejto cesty dozvedel a porovnal d ºku doteraz najkrat²ej cesty do kore a s moºnos ou prechodu cez v(i), ktorá z porovnania vy²la lep²ie. Potrebujeme mechanizmus na detekciu ukon enia neskôr. Zloºitos Kaºdý vrchol posiela správy svojim susedom vºdy, ke sa dozvie o vylep²ení. Ke ºe kaºdý vrchol si môºe vylep²i info max N 1 krát, dostávame pre po et správ vymenených pri výpo te najkrat²ích ciest do v O(NΣ u V Neig u ) = O(N E )
26 KAPITOLA 2. ROUTING/SMEROVANIE Ak po ítame najkrat²ie cesty ku kaºdému vrcholu (teda N krát opakujeme vysvetlený postup), dostávame O(N 2 E ) správ/ O(N 2 E W ) bitov pre výpo et v²etkých najkrat²ích ciest O(N 2 ) správ / O(N 2 W ) bitov na kanál (Predpokladáme min-hop, teda jednotkové ohodnetenie hrán.) 2.2.5 Netchange - najkrat²ie cesty v prítomnosti chýb kanálov Chceme po íta routovacie tabu ky optimálne vzh adom na min-hop v situácii, ke v systéme/grafe môºu nasta poruchy kanálov. Kon²trukcia vychádza z algoritmu Chandy-Misra. Nutnými predpokladmi sú Vrcholy poznajú ve kos siete vyuºívame znalos N = V Kanály sú FIFO inak by sme nezaru ili, ºe vieme, i je kanál funk ný alebo nie Vrcholy sa dozvedia o poruche/oprave susedných kanálov - pri kaºdej zmene susednosti treba prepo íta routovacie tabu ky Cena cesty je po et kanálov na nej Od algoritmu vyºadujeme, aby správne vypo ítal routovacie tabu ky v prípade bezporuchového systému a aby po objavení sa chyby kanálu tabu ky správne prepo ítal. Môºme to naformulova nasledovne: 1. Ak po kone nom po te zmien ostane topológia siete nezmenená, algoritmus v kone nom ase skon í. 2. V okamihu, ke algoritmus skon í, pre vrchol u platí: Nb u [v]=local, ak u = v Nb u [v] = w, kde w je prvý vrchol na najkrat²ej u v ceste Nb u [v] = ak u v cesta neexistuje ƒo si pamätá vrchol? Neigh u - aktuálna mnoºina susedov vrchola u D u [v] odhad d(u, v) Nb u [v] prvý vrchol na ceste s D u [v] ndis u [w, v] odhad d(w, v) Kvôli moºnosti zotavenia sa z chýb si pamätáme odhad vzialenosti ndis u [w, v] pre kaºdú dvojicu vrcholov. V priebehu výpo tu je to len odhad, pretoºe "v aka"chybám sú na as informácie v systéme nekorektné. Inicializácia v u: forall w Neigh u, v V do ndis u [w, v] N; forall v V do begin D u [v] N; Nb u [v] end; D u [u] 0; Nb u [u] local; forall w Neigh u do send < mydist, u, 0 > do w; Na za iatku výpo tu vieme denitívne len to, ºe vzdialenos u od u je 0. Vrchol u to v²etkým oznámi. D ºku ostatných najkrat²ích ciest odhadneme hodnotou N - akoby ani neexistovali; najdlh²ia cesta by mohla by d ºky N-1. Výpo et je vlastne posielanie správ a reakcia na ne. Ak predpokladáme, ºe v systéme môºe dochádza k chybám a opravám kanálov, tak vrchol/procesor akoby pracoval v potenciálne nekone nom
2.2. VÝPOƒET NAJKRAT ÍCH CIEST 27 cykle. Ten pozostáva z prijatia správy a reakcie na u. Dovtedy, kým sa v systéme nachádzajú správy, vykonanie DA pokra uje. spracovanie mydist, v, d receive mydist, v, d ndist u [w, v] d Recompute(v) Spracovanie správy od w vo vrchole u spracovanie repair, v receive repair, v Neigh u Neigh u {w} for all v V do ndist u [w, v] N send mydist, v, D u [v] do w spracovanie fail, v receive fail, w Neigh u Neigh u {w}] for all v V do Recompute(v) < mydist, v, d > je správa, ktorou vrchol w, od ktorého pri²la, oznamuje svoju vzdialenos d od vrchola v (a to alebo denitívnu, alebo len momentálne novú). Pri jej prijatí si aktulizujeme odhad ndist u [w, v] vzdialenosti w v na d. < fail, w > - správa, ktorá bola prijatá kanálom od vrchola w oznamuje poruchu kanálu (v,w). Pri jej prijatí - aktulizujeme Neigh u Neigh u {w} - spustíme prepo ítanie nových vzdialeností D u [v] - kanál uw mohol by za iatkom viacerých najkrat²ích u-v ciest; treba ich aktualizova < repair, w > - kanál (v,w) bol obnovený. Pri jej prijatí si aktulizujeme - Neigh u Neigh u {w}; - nastavíme odhad ndist u [w, v] vzdialenosti w v na N; situácia po obnovení kanálu je ekvivalentná situácii na za iatku výpo tu - oznámime ostatným informáciu o na²ej vzdialenosti k vrcholu w Sme vo vrchole u, vykonávame Recompute(v) Ak v = u, tak Recompute(v) bolo vyvolané po chybe nejakého kanála v w. Jediné, o vieme isto, je vzdialenos D u [v] = D u [u] := 0; Nb u [u]:=local. O ostatných vzdialenostiach nevieme, preto ich odhadneme na N. Ak v u, tak Recompute(v) bolo vyvolané prijatím správy < mydist, v, d > od vrchola w. Musíme porovna doteraz najkrat²iu u v cestu s cestou, ktorej prvý vrchol je w. Korektnos hovoríme, ºe up(u, w) platí obojsmerný kanál (u, w) korektne pracuje Q uw, Q wu sú rady, ktoré modelujú kanál (u, w) Korektnos sa ukáºe pomocou invariantov. Analýzou algoritmu sa dá ukáza, ºe jednotlivé kroky zachovávajú ich platnos. P(u, v, w) 1. up(u, w) w Neigh u 2. up(u, w) Q uw obsahuje < mydist, v, d > potom v poslednej d = D w [v] 3. up(u, w) Q uw neobsahuje < mydist, v, d > potom ndist u [w, v] = D w [v]
28 KAPITOLA 2. ROUTING/SMEROVANIE Algorithm 7 Recompute(v) if v = u then D u [v] 0 Nb u [v] local else D 1 + min{ndist u [w, v] w Neigh u } nech w D je ten vrchol, pre ktorý sa dosahuje minimum if D < N then D u [v] D Nb u [v] w D else D u [v] N Nb u [v] if D u [v] sa zmenilo then for all x Neigh u do send mydist, D do x L(u, v) 4. u = v (D u [v] = 0 Nb u [v] = local) 5. (u v w Neigh u ndist u [w, v] < N 1) (D u [v] = 1 + min{ndist u [w, v]} = 1 + ndist u [Nb u [v], v]) 6. (u v w Neigh u ndist u [w, v] N 1) (D u [v] = N [Nb u [v] = ) Kvôli moºným chybám nemôºeme garantova existenciu terminálnej kongurácie. Preto zavádzame pojem stabilizácie. Denujme predikát stable u, w(up(u, w) Q uw neobsahuje < mydist, v, d >) Hovoríme, ºe kongurácia γ je stabilná, ak stable(γ). Netchange -stabilizácia Konvergenciu systému (za predpokladu, ºe nedochádza k zmená topológie) k stabilnej kongurácii dokazujeme pomocou normy. V²imnime si, ako sa pre potreby algoritmu Netchange denuje norma f. Nech t i (γ) = < mydist,.., i > v γ + (u, v), pre ktoré v γ D u [v] = i norma: f(γ) = (t 0 (γ), t 1 (γ),..., t N (γ)) Konvergencia k stabilizujúcej kongurácii vyplýva z nasledujúceho faktu Fakt 10 Spracovanie < mydist, v, i > zniºuje hodnotu f. Nech prechod γ δ bol spôsobený prijatím správy < mydist, v, i > vo vrchole u. Nech v kongurácii γ D u [v] = j. Rozli²ujeme dve moºnosti: Pri prijatí správy < mydist,..., i > pri²lo k vylep²eniu hodnoty D u [v] na i. V tejto situácii po et správ < mydist,..., i > v systéme klesol o jedna, ale po et dvojíc s D u [v] = i zas stúpol o jedna. Preto t i (γ) = t i (δ). Sú asne v²ak o jedna poklesol po et dvojíc D r [v] = j,takºe t j (γ) = t j (δ) 1.
2.3. ROUTOVANIE S KOMPAKTNÝMI TABU KAMI 29 Pri prijatí správy < mydist,..., i > nepri²lo k vylep²eniu hodnoty D u [v]. V tejto situácii t i (γ) = t i (δ) 1 Fakt 11 Ak po kone nom po te topologických zmien ostane topológia siete nemenná, algoritmus dosiahne stabilnú konguráciu. 2.3 Routovanie s kompaktnými tabu kami Routovacia tabu ka uloºená vo vrchole má to ko riadkov, ko ko je vrcholov. Pre kaºdý vrchol si pamätáme, po ktorom kanáli sa posielajú pre ur ené správy. ƒo keby sme to oto ili - pamätajme si pre kanál identikáciu vrcholov, do ktorých sa po tomto kanáli posiela správa. Ak by sa mnoºina tých vrcholov dala rozumne reprezentova, máme ²ancu na zmen²enie pamäti vo vrchole. Snahou je nájs také o íslovanie vrcholov grafu/siete, aby routovacia tabu ka bolo o moºno najmen²ia. Dá sa o akáva, ºe tabu ka bude aspo ve kosti po tu susedov. Ukáºeme, ºe ak graf tvorí strom, dokáºeme vrcholy o íslova tak, ºe kaºdá hrana je labelovaná dvomi íslami cyklickým intervalom. {a, a + 1,..., b 1} ak a < b; cyklický interval [a, b) = {a, a + 1,..., N, 0, 1,..., b 1} ak b < a. Sta í zobra íslovanie vrcholov stromu preorderom kore, avý, pravý. Toto íslovanie sp a tú vlastnos, ºe vrcholy podstromu T (w) (s kore om vo vrchole w) sú íslované íslami z lineárneho intervalu [a w, b w ). Ak prvý nav²tívený vrchol(kore ) má íslo w, tak
30 KAPITOLA 2. ROUTING/SMEROVANIE vrcholy podstromu sú íslované íslami z mnoºiny {w, w + 1, w + 2,..., w + T (w) 1}, kde + po ítame modulo N. (Pravý )Brat vrchola s íslom w má íslo w + T (w) 2.3.1 Tree-labeling Santoro-Khatib Uvaºujme sie s N vrcholmi. O íslujme sie tak, ºe [a 1, b 1 ),..., [a k, b k ) sú cyklické intervaly priradené odchádzajúcim kanálom vrchola u. Potom vo vrchole u si sta í pamäta tabu ku ve kosti k log N a routovanie pod a tejto schémy moºno vyjadri Správa (m, d) pre d (prijatá/generovaná) v u if d = u then spracuj lokálne else nech w je také, ºe d [a w, b w ); send (m, d) po kanáli v ƒo vieme poveda o optimalite takéhoto routovania? V stromoch je optimálne, lebo pre kaºdé dva vrcholy máme jedinú cestu. Vo v²eobecných (súvislých) grafoch môºeme pre routovanie pouºi kostru. ƒo v²ak v takom prípade platí o kvalite takéhoto routovania? Nech G je graf, T jeho kostra. Ozna me d G (u, v), d T (u, v) cenu najkrat²ej cesty medzi vrcholmi u, v v grafe G, resp. kostre T. O vz ahu d G (u, v), d T (u, v) hovorí nasledujúci fakt. Fakt 12 : Neexistuje ohrani enie pomeru d T d G (u,v). A to ani v prípade min-hop. Sta í uvaºova kruh 0, 1, 2,..., N 1. Nech hrana (x, y) nepatrí do kostry T. Potom d G (x, y) = 1, d T (x, y) = N 1 Majme súvislý grafu so symetrickým ohodnotením hrán ( d(u, v) = d(v, u)).ozna me D G priemer grafu G. Potom: Fakt 13 Existuje taká kostra T grafu G, ºe u, v V d T (u, v) 2 D G. Nech T je optimálny sink-tree pre vrchol w 0. O vzdialenosti d T (u, v) platí d T (u, v) d T (u, w) + d T (w, v) = d G (u, w) + d G (w, v) 2 D G Nevýhody routovania po strome nepouºívame hrany mimo stromu (mrhanie prostriedkami) pouºívame len stromové hrany (zahltenie) výpadok jednej hrany spôsobí kolabs systému 2.3.2 Interval routing van Leeuwen, Tan ILS(interval labeling scheme) je zna kovanie vrcholov a hrán siete zna kami zo Z N tak, ºe vrcholy majú rôzne zna ky v uzle majú v²etky kanály rôzne zna ky Hovoríme, ºe ILS je platná, ak routovaním pod a nej kaºdá správa v kone nom ase dosiahne svoj cie. Veta 3 Ku kaºdému súvislému grafu existuje platná ILS.
2.3. ROUTOVANIE S KOMPAKTNÝMI TABU KAMI 31 Kon²trukcia V grafe spravíme DFS kostru. van Leeuwen, Tan DFS ILS Nech u, v, w sú vrcholy, T (w) ozna uje podstrom s kore om w. Ozna me l w zna ka vrchola w α uv zna ka hrany (u, v) k w = l w + T (w) 1. vrcholy zna kujeme preorderom; vrcholy v podstrome s kore om w majú zna ky l w, l w+1,..., l w+ T (w). 2. hrana (u, w) dostáva zna ku pod a predpisu 2a. (u, w) je frond (nestromová hrana), tak α uw = l w nestromová hrana si ukazuje na druhý koniec 2b. w je T -syn vrchola u, tak α uw = l w Syn je identikovaný jednozna ne. 2c. w je T -otec vrchola u, k u N alebo u nemá frond do kore a, tak α uw = k u na otca ukazujeme menom vrchola prvého vpravo (s výnimkou d) 2d. w je T -otec vrchola u, k u = N a u má frond do kore a, tak α uw = l w. Problém je, ke som na ceste z najpravej²ieho listu do kore a. Pre v²etky vrcholy je najbliº²ím vpravo kore. Preto ak majú frond do kore a, musím zvoili inú stratégiu - ukáºem priamo na otca. Na otca(v najpravej²ej vetve ak mám frond do kore a) ukazujeme jeho menom. K dôkazu korektnosti tejto schémy potrebujeme ukáza, ºe kaºdá správa v kone nom ase dosiahne adresáta. Vyuºijeme opä normu. Nech lca(u, v) je najbliº²í spolo ný predchodca vrcholov u, v. Potom správe, ktorá sa nachádza vo vrchole u a smeruje do vrchola v, priradíme hodnotu f v (u) = ( lca(u, v), l u ) vrchol u posúva správu pre vrchol v do w Lema 1 V situácii, ke pod a DFS ILS posúva vrchol u správu pre vrchol v do vrchola w platí l u > l v l u < l v l u < l v l w < l u l w l v f v (w) < f v (u) Fakt 14 Existuje sie G taká, ºe pre kaºdú platnú ILS existujú v G dva vrcholy u, v také, ºe na doru enie packetu z u do v treba aspo 3 2 D G hopov. Fakt 15 Existuje min-hop ILS pre kruh. Fakt 16 Existuje min-hop ILS pre n n mrieºku. Skúmali sa aj tzv. lineárne ILS schémy, pri ktorých intervaly priradené jednotlivým kanálom sú lineárne, nie cyklické. Jednoduchý príklad ukazuje, ºe takýto druh schém neexistuje pre v²etky siete. Fakt 17 Existuje sie, pre ktorú neexistuje platná lineárna ILS