PB165 Grafy a sítě: Plánování na počítačové síti I. PB165 Grafy a sítě: Plánování na počítačové síti I. 1/49 Plánování na počítačové síti Plánování komunikace současně běžících úloh: paralelní úlohy s komunikací plánování strojů pro úlohy plánování současně probíhající komunikace Plánování současně probíhajících přenosů plánování všech komunikací pro aktuální okamžik plánování strojů neuvažováno Plánování úloh s precedencemi plánování strojů pro úlohy plánování přenosu dat po ukončení úlohy jiné úloze (úlohám) PB165 Grafy a sítě: Plánování na počítačové síti I. 2/49 Problémy plánování úloh na počítačové síti Stroj: dán počet procesorů Úlohy prováděny na jednom nebo více uzlech počítačové sítě vyžadují několik procesorů Úlohy potřebují k výpočtu data data dané velikosti na jednom nebo více uzlech data je nutné přenést na uzel, kde se úloha bude počítat realita: data jsou často zreplikována na několika uzlech Linka: kapacita linky: velikost přenesených dat za časovou jednotku např. 100Mb/s, 1Gb/s, 10Gb/s latence: doba nutná na přenos dat po lince Cíl: realizovat všechny úlohy tak, jak postupně (dynamicky) přibývají úlohy musí mít dostatek procesorů data musí ležet v době výpočtu na uzlu, kde se počítá úloha je nutné plánovat i přenosy dat tak, aby bylo možné data přenést vzhledem k latenci i kapacitě linek na cestě PB165 Grafy a sítě: Plánování na počítačové síti I. 3/49 Základní model: multi-operační rozvrhování Multi-operační rozvrhování úloha se skládá z několika operací může/nemusí být určeno pořadí operací operace má zadáno dobu provádění, konkrétní stroj k provádění stroj: na každém stroji maximálně jedna operace doba na dopravu thl mezi stroji h a l: závislá na strojích kapacita cest mezi stroji neomezená délka cesty mezi stroji = součet odpovídajících dob na dopravu cíl: realizovat všechny operace všech úloh při minimalizaci času dokončení všech úloh Grafová reprezentace orientovaný hranově ohodnocený graf vrchol: stroj hrana: pokud lze přejít přímo z jednoho stroje na druhý ohodnocení hrany: doba na dopravu z jednoho stroje na druhý PB165 Grafy a sítě: Plánování na počítačové síti I. 4/49 Rozšířený model: reprezentace síťových zdrojů Vrcholově ohodnocený neorientovaný graf Vrchol: stroj nebo linka Ohodnocení vrcholu-stroje: počet procesorů Ohodnocení vrcholu-linky: kapacita linky linka je chápána jako zdroj, který má zadánu kapacitu doba zpracování úlohy na lince (tj. přenosu dat pro úlohu na lince) odpovídá latenci Hrany: pokud jsou stroje A a B přímo spojeny linkou C, pak existují hrany AC a BC PB165 Grafy a sítě: Plánování na počítačové síti I. 5/49 Plánování úlohy na počítačové síti: příklad Úloha naplánována k provádění na uzlu 1 Data na uzlech 2 a 3 Data jsou přenesena přes D,C a A,B Kapacita linek A,B,C,D musí být v daném čase postačující Celková doba přenostu do 1: max(latenceA+latenceB, latenceD+latenceC) PB165 Grafy a sítě: Plánování na počítačové síti I. 6/49 Plánování úlohy na počítačové síti: příklad Úloha naplánována k provádění na uzlu 1 Data na uzlech 2 a 3 Data jsou přenesena přes D,C a A,B Kapacita linek A,B,C,D musí být v daném čase postačující Celková doba přenostu do 1: max(latenceA+latenceB, latenceD+latenceC) Otázky: Je možné takovouto úlohu naplánovat za probíhajícího provozu na síti? Je možné ji naplánovat při modifikaci cest pro přenosy? Obecně: jak naplánovat úlohu(y) za daného provozu na síť? směrování PB165 Grafy a sítě: Plánování na počítačové síti I. 7/49 Příklady aplikací plánování přenosů Plánování datových přenosů a výpočtů pro speciální zařízení a přístroje umožňuje plánovat přenosy dopředu na danou dobu, kdy budou linky dostupné (bulk přenosy dat) např. RHIC (relativistic heavy ion collider, USA) a zpracování dat pro fyziku vysokých energií Plánování přenosů videa v rámci kolaborativního prostřední kapacita přenášených dat srovnatelná s kapacitou linek nutná reakce na okamžitý stav počítačové sítě a naplánování na síť za daných aktuálních podmínek např. medicínské aplikace, snímání sportovních zápasů, výuka pomocí videa (vzdálená výuka, přístup např. k operačním sálům na medicíně, záznam a zpracování přednášek) systém CoUniverse vyvíjený na FI MU https://www.sitola.cz/CoUniverse PB165 Grafy a sítě: Plánování na počítačové síti I. 8/49 Umělecká představení na dálku Výuka neslyšících přesná synchronizace a vysoká kvalita vysoká kvalita vícebodové komunikace Distribuovaná mediální produkce pro živé vysílání omezené možnosti komprese PB165 Grafy a sítě: Plánování na počítačové síti I. 9/49 Naplánované spojení pomocí CoUniverse PB165 Grafy a sítě: Plánování na počítačové síti I. 10/49 Paralelně komunikující úlohy Paralelní aplikace a plánování pro daný časový okamžik n komunikujících úloh m procesorů několik úloh prováděno zároveň na každém procesoru kromě přenosů explicitně uvažována zátěž na uzlech Grafová reprezentace hranově a vrcholově ohodnocený neorientovaný graf ohodnocené vrcholy: úlohy s danou výpočetní náročností ohodnocené hrany: průběžně komunikující úlohy s komunikační náročností PB165 Grafy a sítě: Plánování na počítačové síti I. 11/49 Paralelně komunikující úlohy Paralelní aplikace a plánování pro daný časový okamžik n komunikujících úloh m procesorů několik úloh prováděno zároveň na každém procesoru kromě přenosů explicitně uvažována zátěž na uzlech Grafová reprezentace hranově a vrcholově ohodnocený neorientovaný graf ohodnocené vrcholy: úlohy s danou výpočetní náročností ohodnocené hrany: průběžně komunikující úlohy s komunikační náročností Vyvažování zátěže (load balancing): přiřazení úloh na procesory tak, aby byla vyvážená zátěž jednotlivých procesorů byla minimalizována komunikace úloh na různých procesorech PB165 Grafy a sítě: Plánování na počítačové síti I. 12/49 Rozdělení grafu Formulace problému vyvažování zátěže jako problému rozdělení grafu (graph partitioning) Rozdělení grafu G = (V , E) na V = V1 ∪ · · · ∪ Vm tak, že je V1 ∩ · · · ∩ Vm = ∅ G1 = (V1, E1), . . . , Gm = (Vm, Em) Ei tvořeno hranami, jejichž oba vrcholy patří do Vi součet ohodnocení vrcholů v jednotlivých Vi „zhruba stejný” součet ohodnocení hran E\{E1 ∪ · · · Em} spojujících různé Vj a Vk minimalizován PB165 Grafy a sítě: Plánování na počítačové síti I. 13/49 Rozdělení grafu a bisekce grafu Speciální případ: V = V1 ∪ V2 bisekce grafu (graph bisection), tj. z grafu G = (V , E) vytvoříme dva podgrafy (V1, E1) (V2, E2) tak, že V = V1 ∪ V2, V1 ∩ V2 = ∅ Ei tvořeno hranami, jejichž oba vrcholy patří do Vi , tj. E1, E2 ⊂ E, E1 ∩ E2 = ∅, Ei součet ohodnocení vrcholů ve V1 a V2 je „zhruba stejný” součet ohodnocení hran E\{E1 ∪ E2} spojující vrcholy z V1 a V2 je minimalizován Jak nalézt vhodné rozdělení grafu? problém optimálního rozdělení je NP-úplný už pro bisekci: prohledání všech podmnožin množiny vrcholů (podmnožina a její doplněk tvoří V1 a V2) nutné použít dobré heuristiky PB165 Grafy a sítě: Plánování na počítačové síti I. 14/49 Heuristika: opakovaná bisekce grafu Základní používaný princip při rozdělení grafu: rozdělení množiny vrcholů V na 2k částí: rekurzivní bisekce grafu k-krát 58 dělících hran PB165 Grafy a sítě: Plánování na počítačové síti I. 15/49 Rozdělení se souřadnicemi vrcholů (partitioning with nodal coordinates) Myšlenka rozdělení pomocí souřadnic vrcholů každý vrchol má souřadnice v prostoru → rozdělení prostoru pomocí dělící přímky, která dělí vrcholy v prostoru na poloviny PB165 Grafy a sítě: Plánování na počítačové síti I. 16/49 Rozdělení se souřadnicemi vrcholů (partitioning with nodal coordinates) Myšlenka rozdělení pomocí souřadnic vrcholů každý vrchol má souřadnice v prostoru → rozdělení prostoru pomocí dělící přímky, která dělí vrcholy v prostoru na poloviny PB165 Grafy a sítě: Plánování na počítačové síti I. 17/49 Rozdělení se souřadnicemi vrcholů (partitioning with nodal coordinates) Myšlenka rozdělení pomocí souřadnic vrcholů každý vrchol má souřadnice v prostoru → rozdělení prostoru pomocí dělící přímky, která dělí vrcholy v prostoru na poloviny PB165 Grafy a sítě: Plánování na počítačové síti I. 18/49 Rozdělení se souřadnicemi vrcholů (partitioning with nodal coordinates) Myšlenka rozdělení pomocí souřadnic vrcholů každý vrchol má souřadnice v prostoru → rozdělení prostoru pomocí dělící přímky, která dělí vrcholy v prostoru na poloviny PB165 Grafy a sítě: Plánování na počítačové síti I. 19/49 Plánování datových přenosů Problém: plánování datových přenosů, kde se velikost přenášených dat blíží kapacitám používaných linek Varianty: plánování přenosů v čase plánujeme, kdy se datové přenosy odehrávají je třeba uvažovat plánování zdrojů v probíhajícím čase plánování současně probíhajících přenosů není uvažován čas, vše se plánuje pro aktuální okamžik není tedy ani uvažováno plánování úloh v čase na uzly pro tento případ uvedeme základní model PB165 Grafy a sítě: Plánování na počítačové síti I. 20/49 Grafová reprezentace: uzel Na uzlu v ∈ V se mohou nacházet různé aplikace producent p ∈ P produkuje data konzument c ∈ C přijímá data distributor d ∈ D je schopen rozesílat přijímaná data do několika linek distributor jako náročná aplikace nejvýše jeden na uzlu distributor = application-level multicast (ALM) agent možné varianty distributora: 1 distributor může data transformovat (transkódovat) přenášená data např. z nekomprimovaného HDTV videa na HDV MPEG2 video 2 data jsou stejného typu, tj. distributor je reflektorem (uvažováno dále) Uzel má několik rozhraní (interfaces), po kterých posílá a přijímá data množina všech rozhraní I kapacita rozhraní capacityI(i) pro i ∈ I linky připojené k rozhraní links(i) pro i ∈ I PB165 Grafy a sítě: Plánování na počítačové síti I. 21/49 Grafová reprezentace (dokončení) Linka l ∈ L má určen počáteční uzel begin(l) koncový uzel end(l) latenci latency(l) kapacitu capacity(l) Linky reprezentují logickou strukturu sítě reálná struktura sítě často neznámá zahlcení linky detekováno monitorováním stavu sítě v případě nutnosti možné přeplánování nutné realizovat v reálném čase tj. vyžaduje rychlou odezvu Orientovaný graf (V , L) vrcholy: množina uzlů v ∈ V hrany: množina orientovaných linek l ∈ L tento graf reprezentuje základní strukturu, se kterou pracujeme PB165 Grafy a sítě: Plánování na počítačové síti I. 22/49 Ukázka sítě při plánování datových přenosů Producent: sender Konzument: receiver Distributor: reflector PB165 Grafy a sítě: Plánování na počítačové síti I. 23/49 Stream Stream s ∈ S je datový tok od producenta ke konzumentům bandwidth(s) udává požadovanou šířku pásma datového toku streamu příjem dat streamu s je požadován množinou zadaných konzumentů consumers(s)⊆ C data streamu s vysílá právě jeden producent p =producer(s)∈ P obecně může existovat více producentů a cílem plánování je pak vybrat producenty zajišťující maximální kvalitu danou typem přenášených dat např. nekomprimované HDTV video, HDV MPEG2 video, HDV MPEG4 video pro zjednodušení můžeme předpokládat, že každý stream má předem jednoznačně určeného producenta vhodného producenta lze vypočítat předem Předpokládáme tedy: pro každý stream přesně určen jeden producent PB165 Grafy a sítě: Plánování na počítačové síti I. 24/49 Problém plánování datových přenosů Problém plánování několika streamu naplánovat všechny streamy z S na dostupné linky tak, aby byla optimalizována zadaná kritéria, např. minimalizace celkové latence při uvažování kvality spojení: maximalizace kvality přenášených dat všechny přenosy probíhají zároveň Konstrukce distribučního stromu pro každého producenta/stream s distribuční strom jako podgraf grafu (V , L) kořen stromu: uzel s producentem producer(s) listy stromu: uzly s konzumenty consumers(s) vnitřní uzly stromu: uzly s distributory PB165 Grafy a sítě: Plánování na počítačové síti I. 25/49 Distribuce dat Distributor vytváří kopie dat PB165 Grafy a sítě: Plánování na počítačové síti I. 26/49 Distribuce dat Distributor vytváří kopie dat Všechny pakety jdou k jednomu konzumentovi po jedné cestě 1/2 1/2 PB165 Grafy a sítě: Plánování na počítačové síti I. 27/49 Ukázka distribučních stromů PB165 Grafy a sítě: Plánování na počítačové síti I. 28/49 Modely pro plánování datových přenosů Modely model založený na linkách model založený na cestách model založený na uzlech Model založený na linkách (link-based model) pro každý požadavek (stream) s: proměnná pro každý link l Proměnná xs,l pro každý stream s a každou linku l xs,l = 1 jestliže s prochází po l 0 jinak Cíl: nalézt hodnoty proměnných xs,l optimální vzhledem k zadanému optimalizačnímu kritériu pro tento model si ukážeme vyjádření typických požadavků problému PB165 Grafy a sítě: Plánování na počítačové síti I. 29/49 Ukázka distribučního stromu pro jeden stream 0/1 ukazují hodnoty xs,l proměnných pro vybraný stream s a všechny linky l PB165 Grafy a sítě: Plánování na počítačové síti I. 30/49 Další modely pro plánování na přenosů Model založený na cestách (path-based model) pro každý požadavek s: proměnná pro každou možnou cestu p mezi zdrojem (producent) a cílem (konzument) xs,p = 1 jestliže jde požadavek s po cestě p 0 jinak náročné pokud je hodně možných cest Model založený na uzlech (node-based model) pro každý požadavek s: proměnná pro každý uzel v xs,v = 1 jestliže je uzel v použit pro požadavek s 0 jinak PB165 Grafy a sítě: Plánování na počítačové síti I. 31/49 Vztahy pro konzistentní a optimální plánování Konzistentní plánování kapacita linek a rozhraní posílání a přijímání dat vlastnosti konzumenta a producenta vlastnosti distributora eliminace cyklů Optimální plánování optimalizační kritéria PB165 Grafy a sítě: Plánování na počítačové síti I. 32/49 Optimalizační kritéria Celková latence musí být minimalizována minimize s∈S l∈L latency(l) · xs,l Další kritéria: maximalizace kvality přenosu při zajišťování linek s maximální kapacitou pro přenášená data balancování latencí všech linek při video-konferencích k zajištění bezproblémového přerušení a vstupu do probíhající video-konference PB165 Grafy a sítě: Plánování na počítačové síti I. 33/49 Kapacita linky a rozhraní Kapacita linky Požadovaná šířka pásma pro všechny streamy nesmí překročit kapacitu žádného linku ∀l ∈ L s∈S bandwidth(s) · xs,l ≤ capacity(l) PB165 Grafy a sítě: Plánování na počítačové síti I. 34/49 Kapacita linky a rozhraní Kapacita linky Požadovaná šířka pásma pro všechny streamy nesmí překročit kapacitu žádného linku ∀l ∈ L s∈S bandwidth(s) · xs,l ≤ capacity(l) Kapacita rozhraní Streamy přenášené jedním rozhraním nesmí překročit jeho kapacitu ∀i ∈ I s∈S l∈links(i) bandwidth(s) · xs,l ≤ capacityI(i) PB165 Grafy a sítě: Plánování na počítačové síti I. 35/49 (NE)posílání a (NE)přijímání dat Kdo může posílat data? Pokud není na počátečním uzlu linky l ani producent streamu s ani distributor ⇒ xs,l = 0 PB165 Grafy a sítě: Plánování na počítačové síti I. 36/49 (NE)posílání a (NE)přijímání dat Kdo může posílat data? Pokud není na počátečním uzlu linky l ani producent streamu s ani distributor ⇒ xs,l = 0 Kdo může přijímat data? Pokud není na koncovém uzlu linky l ani konzument streamu s ani distributor ⇒ xs,l = 0 PB165 Grafy a sítě: Plánování na počítačové síti I. 37/49 Vlastnosti konzumenta a producenta Konzument c přijímá data právě jednou linkou ∀s ∈ S ∀c ∈ consumers(s) l∈L ∧ c∈end(l) xs,l = 1 C PB165 Grafy a sítě: Plánování na počítačové síti I. 38/49 Vlastnosti konzumenta a producenta Konzument c přijímá data právě jednou linkou ∀s ∈ S ∀c ∈ consumers(s) l∈L ∧ c∈end(l) xs,l = 1 C Producent posílá data právě jednou linkou ∀s ∈ S l∈L ∧ producer(s)∈begin(l) xs,l = 1 P PB165 Grafy a sítě: Plánování na počítačové síti I. 39/49 Vlastnosti distributora Distributor přijímá data nejvýše jednou ∀d ∈ D s∈S l∈inlinks(d) xs,l ≤ 1 D ? inlinks(d) linky, které vstupují do uzlu distributora outlinks(d) linky, které vystupují z uzlu distributora PB165 Grafy a sítě: Plánování na počítačové síti I. 40/49 Vlastnosti distributora Distributor přeposílá příchozí stream aktivní distributor pro stream s ∀d ∈ D l∈inlinks(d) xs,l ≤ l∈outlinks(d) xs,l D PB165 Grafy a sítě: Plánování na počítačové síti I. 41/49 Vlastnosti distributora Distributor přeposílá příchozí stream aktivní distributor pro stream s ∀d ∈ D l∈inlinks(d) xs,l ≤ l∈outlinks(d) xs,l D PB165 Grafy a sítě: Plánování na počítačové síti I. 42/49 Vlastnosti distributora Na distributorovi nevznikají žádná data neaktivní distributor pro stream s ∀d ∈ D l∈inlinks(d) xs,l = 0 ⇔ l∈outlinks(d) xs,l = 0 D PB165 Grafy a sítě: Plánování na počítačové síti I. 43/49 Eliminace cyklů C C C D DP D D D Všechny cykly mezi distributory je nutné zakázat Příklad řešení: Nejvýše k − 1 používaných linek mezi každou k-ticí uzlů pro každý stream ve stromu s k uzly je k − 1 hran, přidáním další hrany vznikne cyklus PB165 Grafy a sítě: Plánování na počítačové síti I. 44/49 Eliminace cyklů C C C D DP D D D Všechny cykly mezi distributory je nutné zakázat Příklad řešení: Nejvýše k − 1 používaných linek mezi každou k-ticí uzlů pro každý stream ve stromu s k uzly je k − 1 hran, přidáním další hrany vznikne cyklus PB165 Grafy a sítě: Plánování na počítačové síti I. 45/49 Metody řešení Uvedený model popisuje základní množinu požadavků pro řešení problémů plánování datových přenosů Při řešení konkrétního problému nutné přidat specifická omezení a také redundantní omezení pro úspěšné/efektivní řešení problému Daný model (a jeho rozšíření na konkrétní aplikaci) lze řešit pomocí grafových algoritmů (toky v síti, hledání cest v grafu) programování s omezujícími podmínkami např. CoUniverse využívá pro plánování Java řešič Choco pro omezující podmínky celočíselné programování optimální plánovač pro CoUniverse zahrnuta částečná znalost topologie sítě + komprese dat metaheuristiky (lokální prohledávání) např. ant colony optimization – prohledávání pomocí kolonie mravenců zahrnutí částečné znalosti topologie sítě, komprese dat a dále i nepřesné znalosti topologie sítě a přeplánování při změně PB165 Grafy a sítě: Plánování na počítačové síti I. 46/49 Datové přenosy: příklad Pro zadanou počítačovou síť uveďte uveďte seznam proměnných. Navrhněte, jak by mohl být datový přednos realizován a uveďte odpovídající hodnoty proměnných reprezentující řešení optimalizující celkovou latenci. Jaká je celková latence? Ohodnocení linku l latency(l), capacity(l) Stream s1 bandwith(s1) = 5 producer(s1) = P1 consumers(s1) = {C1, C2} Stream s2 bandwith(s2) = 5 producer(s2) = P2 consumers(s2) = {C3} BP1 P2 C1 D1 D4D3D2 C3 C2 1,10 3,10 2,10 1,10 1,10 3,10 1,10 1,1 1,10 2,1 1,10 3,10 PB165 Grafy a sítě: Plánování na počítačové síti I. 47/49 Datové přednosy: výsledný graf Proměnné: pro stream s1: xs1,l1, . . . , xs1,l12 pro stream s2: xs2,l1, . . . , xs2,l12 xs1,l2 = 1 xs1,l4 = 1 xs1,l6 = 1 pro ostatní linky a stream s1 ... 0 B Celková latence 1+1+2 + 1+3 l1 l2 l3 l4 l5 l6 l7 P1 P2 C1 D1 D4D3D2 C3 C2 1,10 3,10 2,10 1,10 1,10 3,10 1,10 1,1 1,10 2,1 1,10 3,10 l8 l9 l10 l11 l12 xs2,l9 = 1 xs2,l12 = 1 pro ostatní linky a stream s2 ... 0 PB165 Grafy a sítě: Plánování na počítačové síti I. 48/49 Datové přenosy: cvičení Pro graf počítačové sítě na obrázku uvažujte datové přenosy pro stream s1 a s2, které jsou zadány následujícím způsobem stream s1: bandwith(s1)=10, producer(s1)=P1, consumer(s1)={C1}; stream s2: bandwith(s2)=10, producer(s2)=P2, consumer(s2)= {C2,C3}. Ohodnocení hran grafu přitom udává jejich latenci a kapacitu. BP1 P2 C1 D1 D4 D3 D2 C3C2 5,1 5,1 15,10 5,10 6,10 4,10 5,10 5,10 7,10 8,10 6,10 Uveďte, jaké proměnné jsou nutné při řešení tohoto problému datových přenosů a navhrněte jejich vhodné hodnoty tak, aby odpovídající řešení minimalizovalo celkovou latenci. Jaká je pak celková latence? PB165 Grafy a sítě: Plánování na počítačové síti I. 49/49