Komunikační sítě paralelních architektur Komunikační sítě - úvod Topologie komunikačních sítí Nepřímé komunikační sítě Sběrnice (bus) Sítě s přepínači - crossbar networks Víceúrovňové sítě Přímé komunikační sítě Úplně propojená sít - completely connected network Hvězdicovitá sít - star connected network Ortogonální sítě - orthogonal networks Hodnocení komunikačních sítí Hodnocení přímých sítí Hodnocení nepřímých sítí Složitost komunikace v komunikačních sítích Složitost komunikace v přímých sítích Deadlock Algoritmy pro směrování dat v síti Složitost komunikace v nepřímých sítích Složitost komunikace u paralelních architektur Složitost komunikace u paralelních architektur s
Komunikační sítě I. komunikační sítě zajišt ují komunikaci výpočetních jednotek výpočetní jednotkou zde nejčastěji myslíme procesor nebo počítač víme, že komunikace probíhá pomocí přístupu do sdílené paměti posíláním zpráv (mluvíme o fyzické organizaci, proto neuvažujeme virtuální adresové prostory) komunikační sítě tedy nejčastěji propojují procesory s pamět ovými moduly - multiprocesory s sdílenou pamětí moduly s procesory a pamět ovými čipy mezi sebou - multiprocesory s distribuovanou pamětí uzly výpočetního klastru mezi sebou - symetrický multipočítač
Komunikační sítě II. komunikační sít má obecně n vstupů a m výstupů jsou-li vstupy a výstupy stejné, jde o architekturu založenou na posílání zpráv jsou-li vstupy a výstupy různé, jde o propojení typ. "CPU-RAM" sít se obecně skládá z spojů (links) - kabel, sběrnice, tištěný spoj přepínačů (switch) komunikační sítě se dělí na statické, přímé (static, direct) neobsahují přepínače, jen spoje dynamické, nepřímé (dynamic, indirect) obsahují i přepínače oproti přímým sítím snižují počet spojů (a tím i cenu) často bývají tzv. blokující = neumožňují provést současně dvě spojení, která vyžadují jeden přepínač v různých stavech
Přímá komunikační sít PU PU NI Communication Network NI PU processing unit NI network interface NI NI PU PU
Nepřímá komunikační sít PU PU NI Communication Network NI PU processing unit SW NI SW SW network interface SW SW NI NI switch PU PU
Sít ové přepínač - switch provádí mapování (přepínání) mezi vstupy a výstupy = porty počet všech portů switche se nazývá stupeň - degree switch může mít vnitřní vyrovnávací pamět - buffer hardware pro směrování dat v síti - router podporu přesměrování jednoho vstupu na více výstupů - multicasting
Sít ové rozhraní - network interface vytváří datové pakety rozdělí data na menší celky přidá hlavičku s doprovodnými informacemi provádí opravu chyb
Škálovatelnost I. škálovatelnost (scalability) systému je vlastnost popisující, jak snadno lze měnit velikost systému nejčastěji nás zajímá, jak složité/nákladné je systém zvětšit v případě, že současný stav nevyhovuje našim požadavkům je-li systém dobře škálovatelný, lze ho snadno přizpůsobit našim potřebám v případě paralelních architektur je škálovatelnost dána typem komunikační sítě cena za nový uzel je vždy stejná s rostoucím počtem uzlů roste i počet nutných spojů a případně i přepínačů zajímá nás vztah mezi počtem výpočetních jednotek p a náklady na jejich propojení ten vyjadřujeme asymptoticky pomocí tzv. Bachmannova-Landauova značení
Škálovatelnost II. Bachmannovo-Landauovo značení Pro funkce f, g : R + R + definujeme f (n) f (n) O(g(n)) lim n g(n) C f je nejvýše řádu g f (n) f (n) Ω(g(n)) lim n g(n) C f je alespoň řádu g f (n) f (n) Θ(g(n)) lim n g(n) = C f je stejného řádu jako g f (n) f (n) o(g(n)) lim n g(n) = 0 f je řádu ostře menšího než g f (n) f (n) ω(g(n)) lim n g(n) = + f je řádu ostře většího než g
Sběrnice - bus patří spíše mezi nepřímé sítě (těžko se zařazuje) komunikační spoj je tu sdílen mezi všemi připojenými zařízeními to je výhodné pro multicasting a pro řešení cache coherence problému každé zařízení jen poslouchá probíhající komunikaci a čeká na signál, který znamenám, že komunikace se týká i jeho současně mohou komunikovat jen dvě zařízení (ostatní mohou maximálně odposlouchávat) objem komunikace je omezen kapacitou sběrnice, kterou nelze zvětšit (není škálovatelná) do této meze je ale škálovatelná dobře prostě se ke sdílenému spoji "připíchne"další zařízení náklady rostou lineárně s počtem zařízení tj. řádu O(p) většinou propojuje CPU a RAM u multiprocesorových systémů (nejčastěji SMP)
Sběrnice II. CPU RAM CPU CPU Sběrnice RAM RAM CPU RAM
Sítě s přepínači - Crossbar networks
Sítě s přepínači II. RAM RAM RAM RAM CPU CPU CPU CPU
Sítě s přepínači II. RAM RAM RAM RAM CPU CPU CPU CPU
Sítě s přepínači II. RAM RAM RAM RAM CPU CPU CPU CPU
Sítě s přepínači II. RAM RAM RAM RAM CPU CPU CPU CPU
Sítě s přepínači II. RAM RAM RAM RAM CPU CPU CPU CPU
Sítě s přepínači III. oproti sběrnici není crossbar blokující pokud jeden procesor komunikuje s určitým pamět ovým modulem, může libovolný jiný procesor komunikovat s libovolným jiným pamět ovým modulem je-li m počet RAM modulů, pak náklady jsou θ(mp) předpokládáme p m, jinak by se stávalo, že nějaký procesor by neměl přístup do žádného modulu náklady jsou potom řádu Ω(p 2 ) tato sít je tedy špatně škálovatelná a těžko použitelná pro velký počet procesorů p
Víceúrovňové sítě víceúrovňové sítě snižují náklady crossbaru za cenu toho, že některá spojení jsou blokující navíc nemají výkonové omezení škálovatelnosti jako sběrnice
Víceúrovňové sítě II. CPU RAM CPU RAM CPU CPU CPU CPU Úroveň 1 Úroveň 2 Úroveň 3 RAM RAM RAM RAM CPU RAM CPU RAM
Víceúrovňové sítě III. víceúrovňová sít se skládá ze stejného počtu vstupů a výstupů tj. m = p mezi vstupy a výstupy se nachází jednotlivé úrovně sítě každá úroveň je tvořena statickou částí zajišt ující určitou permutaci vstupů a výstupů dané úrovně dynamickou částí, tj. přepínači realizující jednotlivé spoje stupeň přepínačů určuje stupeň víceúrovňové sítě má-li přepínač dva vstupy a dva výstupy, mluvíme o bínární síti
Víceúrovňové sítě IV. Dva stavy přepínače v binární víceúrovňové síti: přímý - pass-through křížený - cross-over
Víceúrovňové sítě V. předpokládejme, že máme binární víceúrovňovou sít a m = p = 2 n tato sít má potom n úrovní jednotlivé procesory a pamět ové moduly očíslujeme binárním kódem, získáme tak binární adresu vstupu a výstupu, které chceme spojit
Víceúrovňové sítě VI. CPU: 0 RAM: 0 CPU: 1 RAM: 1
Víceúrovňové sítě VI. CPU: 0 RAM: 0 CPU: 1 RAM: 1
Víceúrovňové sítě VI. CPU: 0 RAM: 0 CPU: 1 RAM: 1
Víceúrovňové sítě VII. Jak zvolit jednotlivé permutace při dvou úrovních? CPU: 00 CPU: 01 CPU: 10 CPU: 11 RAM: 00 RAM: 01 RAM: 10 RAM: 11
Víceúrovňové sítě VII. Jak zvolit jednotlivé permutace při dvou úrovních? CPU: 00 CPU: 01 CPU: 10 CPU: 11 RAM: 00 RAM: 01 RAM: 10 RAM: 11 Odmyslíme si přepínače
Víceúrovňové sítě VII. CPU: 00 CPU: 01 CPU: 10 CPU: 11 RAM: 00 RAM: 01 RAM: 10 RAM: 11
Víceúrovňové sítě VII. Takto by přepínače na první úrovni ovlivňovaly nejvýznamnější bit, CPU: 00 CPU: 01 CPU: 10 CPU: 11 00 10 01 11 RAM: 00 RAM: 01 RAM: 10 RAM: 11
Víceúrovňové sítě VII. a přepínače na druhé úrovni nejméně významný bit. CPU: 00 00 00 RAM: 00 CPU: 01 10 01 RAM: 01 CPU: 10 01 10 RAM: 10 CPU: 11 11 11 RAM: 11
Víceúrovňové sítě VIII. Tím pádem bychom měli být schopni pomocí vhodného nastavení přepínačů změnit libovolnou adresu na vstupu na libovolnou adresu na výstupu.
Víceúrovňové sítě VIII. Tím pádem bychom měli být schopni pomocí vhodného nastavení přepínačů změnit libovolnou adresu na vstupu na libovolnou adresu na výstupu. Vrátíme tedy přepínače zpět.
Víceúrovňové sítě IX. CPU: 00 CPU: 01 CPU: 10 CPU: 11 RAM: 00 RAM: 01 RAM: 10 RAM: 11
Víceúrovňové sítě X. CPU: 00 CPU: 01 CPU: 10 CPU: 11 RAM: 00 RAM: 01 RAM: 10 RAM: 11
Víceúrovňové sítě X. CPU: 00 CPU: 01 CPU: 10 CPU: 11 RAM: 00 RAM: 01 RAM: 10 RAM: 11
Víceúrovňové sítě X. CPU: 00 CPU: 01 CPU: 10 CPU: 11 RAM: 00 RAM: 01 RAM: 10 RAM: 11
Víceúrovňové sítě X. CPU: 00 CPU: 01 CPU: 10 CPU: 11 RAM: 00 RAM: 01 RAM: 10 RAM: 11
Víceúrovňové sítě XI. Návrh obecné binární víceúrovňové sítě: zajímá nás jednoduchý postup pro návrh binární sítě pro libovolné p počet bitů adresy odpovídá počtu úrovní sítě sít je navržena tak, aby na každé úrovni změna stavu příslušného přepínače odpovídala změně určitého bitu mezi adresou vstupu a výstupu jsou-li příslušné bity stejné, je přepínač nastaven jako přímý jsou-li příslušné bity různé, nastaví se přepínač jako překřížený
Víceúrovňové sítě XI. Návrh obecné binární víceúrovňové sítě: zajímá nás jednoduchý postup pro návrh binární sítě pro libovolné p počet bitů adresy odpovídá počtu úrovní sítě sít je navržena tak, aby na každé úrovni změna stavu příslušného přepínače odpovídala změně určitého bitu mezi adresou vstupu a výstupu jsou-li příslušné bity stejné, je přepínač nastaven jako přímý jsou-li příslušné bity různé, nastaví se přepínač jako překřížený Definujeme následující základní typy permutací pro binární sítě.
Víceúrovňové sítě - perfect shuffle 1. Perfect shuffle - rotace vlevo je-li adresa vstupu x n 1, x 0, spojím ho s výstupem daným adresou σ (x n 1,, x 0 ) = x n 2,, x 0, x n 1 permutace je dána jako posun adresového zápisu o jednu pozici vlevo
Víceúrovňové sítě - perfect shuffle 000 000 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - perfect shuffle 001 010 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - perfect shuffle 010 100 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - perfect shuffle 011 110 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - perfect shuffle 100 001 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - perfect shuffle 101 011 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - perfect shuffle 110 101 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - perfect shuffle 111 111 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - perfect shuffle 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - butterfly 2. Butterfly je-li adresa vstupu x n 1, x 0, spojím ho s výstupem daným adresou β i (x n 1,, x 0 ) = x n 1,, x i+1, x 0, x i 1,, x 1, x i permutace je dána prohozením bitů na pozici i a 0
Víceúrovňové sítě - butterfly (i=1) 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - butterfly (i=2) 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Víceúrovňové sítě - butterfly (i=3) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Víceúrovňové sítě - baseline 3. Baseline je-li adresa vstupu x n 1, x 0, spojím ho s výstupem daným adresou δ i (x n 1,, x 0 ) = x n 1,, x i+1, x 0, x i, x i 1,, x 1 permutace je dána rotací posledních i + 1 bitů vpravo
Víceúrovňové sítě - baseline (i=1) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Víceúrovňové sítě - baseline (i=2) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Víceúrovňové sítě - baseline (i=3) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Víceúrovňové sítě - příklady Příklady víceúrovňových sítí omega sít = n-krát perfect shuffle baseline = σ δ n 1 δ n 2 δ 1
Víceúrovňové sítě - omega sít CPU:000 CPU:001 CPU:010 CPU:011 CPU:100 CPU:101 CPU:110 CPU:111 RAM:000 RAM:001 RAM:010 RAM:011 RAM:100 RAM:101 RAM:110 RAM:111
Víceúrovňové sítě - omega sít Směrování dat v omega síti data jdou od zdroje s (CPU) k cíli t (RAM) = zápis do paměti cestou "přepisujeme"adresu zdroje na adresu cíle nejprve narazí na přepínač na první úrovni ten ovlivňuje (v případě omega sítě) nejvíce významný bit adresy zdroje porovnáme nejvíce významný bit binárního zápisu adresy zdroje a cíle pokud se liší, nastavíme přepínač do stavu křížený pokud se shodují, nastavíme přepínač do stavu přímý
Víceúrovňové sítě - omega sít data poskočí na druhou úroveň zde má přepínač vliv na druhý nejvíce významný bit adresy zdroje opět porovnáváme bity adresy zdroje a cíle - tentokrát druhý nejvýznamnější tak postupujeme, až dojdeme k cíli
Víceúrovňové sítě - omega sít Příklad: chceme vytvořit spoj 010 111 tj. přepínač na první úrovni bude křížený přepínač na druhé úrovni bude přímý přepínač na třetí úrovni bude křížený
Víceúrovňové sítě - omega sít CPU:000 CPU:001 CPU:010 CPU:011 CPU:100 CPU:101 CPU:110 CPU:111 RAM:000 RAM:001 RAM:010 RAM:011 RAM:100 RAM:101 RAM:110 RAM:111
Víceúrovňové sítě - omega sít nyní chceme spoj 110 100 tj. přepínač na první úrovni bude přímý přepínač na druhé úrovni bude křížený přepínač na třetí úrovni bude přímý
Víceúrovňové sítě - omega sít CPU:000 CPU:001 CPU:010 CPU:011 CPU:100 CPU:101 CPU:110 CPU:111 RAM:000 RAM:001 RAM:010 RAM:011 RAM:100 RAM:101 RAM:110 RAM:111
Víceúrovňové sítě - omega sít Tyto dva spoje jsou vzájemně se blokující!
Víceúrovňové sítě - omega sít Tyto dva spoje jsou vzájemně se blokující! existují i neblokující víceúrovňové sítě obsahují více úrovní například Benešova sít také existují obousměrné víceúrovňové sítě nemají výstupy (k pamět ovým modulům) a místo přepínačů na poslední úrovni mají prvky, které mají propojeny oba výstupy
Víceúrovňové sítě - náklady binární víceúrovňová sít má log p úrovní na každé úrovni je p 2 přepínačů a p spojů náklady jsou tedy řádu θ (p log p)
Nepřímé komunikační sítě - porovnání Sběrnice Crossbar Víceúrovňová binární sít Náklady θ (p) θ ( p 2) θ (p log p) Škálovatelnost dobrá, ale omezená špatná dobrá Blokující ano ne ano
Přímé komunikační sítě sít ová spojení přímých sítí jsou dána pevně a nemění se přímé sítě se popisují pomocí grafů
Přímé komunikační sítě sít ová spojení přímých sítí jsou dána pevně a nemění se přímé sítě se popisují pomocí grafů Definition Neorientovaný graf je dvojice G(V, E) tvořená neprázdnou množinou vrcholů V a konečnou množinou hran E.
Přímé komunikační sítě sít ová spojení přímých sítí jsou dána pevně a nemění se přímé sítě se popisují pomocí grafů Definition Neorientovaný graf je dvojice G(V, E) tvořená neprázdnou množinou vrcholů V a konečnou množinou hran E. Definition Jsou-li v 1, v 2 V dva vrcholy a e E taková, že e = (v 1, v 2 ), říkáme, že hrana e spojuje vrcholy v 1 a v 2. vrcholy představují výpočetní jednotku (uzel) - computing node hrany představují sít ová spojení - link
Úplně propojená sít - completely connected network Tento typ sítě odpovídá úplnému grafu. Definition Úplný graf je takový graf, jehož libovolné dva uzly jsou spojeny hranou.
Úplně propojená sít - completely connected network
Úplně propojená sít - completely connected network jde o statický protějšek "crossbaru"mezi dynamickými sítěmi v libovolný okamžik může komunikovat libovolný uzel s libovolným jiným sít má p(p 1)/2 spojů náklady jsou řádu θ(p 2 ) úplně propojená sít je tudíž špatně škálovatelná
Hvězdicovitá sít - star connected network
Hvězdicovitá sít - star connected network má jeden centrální uzel, který zajišt uje komunikace mezi ostatními jde tedy o statický protějšek sběrnice mezi dynamickými sítěmi centrální počítač je ale (stejně jako komunikační médium u sběrnice) úzkým hrdlem této sítě sít obsahuje p komunikačních spojů náklady jsou tedy řádu θ(p)
Ortogonální sítě - orthogonal networks jde o sítě, jejichž topologie je podobná topologii euklidovských prostorů R n tyto sítě se nejlépe popisují rekurzivně pomocí součinu grafů Definition Kartézský součin dvou různých grafů G 1 = G 1 (V 1, E 1 ), G 2 = G 2 (V 2, E 2 ) je graf G = G 1 G 2, G = G(V, E), pro který platí V = {[x, y] x V 1 ; y V 2 }, E = {([x 1, y], [x 2, y] (x 1, x 2 ) E 1 } {([x, y 1 ], [x, y 2 ] (y 1, y 2 ) E 2 }.
Ortogonální sítě - orthogonal networks Příklad: Kartézský součin dvou grafů 3 1 2 A B = [3, A] [3, B] [2, A] [2, B] [1, A] [1, B]
Ortogonální sítě - orthogonal networks Existují dva typy základních ortogonálních sítí: lineární řetězec - linear array kruh - ring. Ostatní sítě se odvozují pomocí kartézských součinů grafů.
Lineární řetězec - linear array Lineární řetězec je graf v němž všechny vrcholy kromě prvního a posledního mají dva sousedy.
Kruh - ring Kruh je graf, který odpovídá lineárnímu řetězci v němž je spojen první a poslední vrchol.
n-rozměrná sít - mesh je definována jako kartézský součin n lineárních řetězců obecně různé délky mají-li všechny řetězce v kartézském součinu dva vrcholy, dostaneme hyperkrychli - hypercube - Q n
n-rozměrná sít - mesh 4 3 2 1 0 0 1 2 3 4 = [0, 4] [0, 3] [0, 2] [0, 1] [0, 0] [1, 4] [1, 3] [1, 2] [1, 1] [1, 0] [2, 4] [2, 3] [2, 2] [2, 1] [2, 0] [3, 4] [3, 3] [3, 2] [3, 1] [3, 0] [4, 4] [4, 3] [4, 2] [4, 1] [4, 0]
Hyperkrychle - hypercube
n-rozměrný torus je definována jako kartézský součin n kruhů obecně různé délky Poznámka: Smíšené kartézské součiny lineárních řetězců a kruhů se neuvažují.
Vlastnosti ortogonálních sítí Mapování grafu do R n : hrany jednotlivých lineárních řetězců/kruhů jdou podél jednotlivých bazických vektorů R n jeden vrchol grafu odpovídá počátku souřadnic graf nezasahuje žádným vrcholem do záporných hodnot vrcholy se číslují podle pozice v prostoru R n 2D a 3D ortogonální sítě jsou velice vhodné pro numerické výpočty, nebot jejich topologie je shodná s čtvercovými numerickými sítěmi
Vlastnosti ortogonálních sítí Číslování vrcholů podle souřadnic v R n umožňuje: snadný výpočet vzdálenosti dvou vrcholů v n-rozměrné síti pro dva vrcholy v1 a v 2 se souřadnicemi v 1 = [a 1,, a n ] a v 1 = [b 1,, b n ] je jejich vzdálenost d(v 1, v 2 ) = n a i b i i=1 směrování dat v n-rozměrné síti posíláme data z uzlu v1 na uzel v 2 pro i = 1,, n se porovná a i a b i je-li a i < b i data se pošlou (b i a i )-krát v kladném směru i-tého bazického vektoru je-li ai > b i data se pošlou (a i b i )-krát v záporném směru i-tého bazického vektoru pro n-rozměrný torus lze postupovat podobně
Stromové sítě - tree-based networks stromové sítě jsou popsány grafem, pro který platí, že mezi libovolným párem uzlů existuje jen jedna cesta jde například o lineární řetězec hvězdu binární strom binární stromy se dělí na statické a dynamické
Stromové sítě - tree-based networks Statický binární strom Dynamický binární strom SW SW SW - výpočetní uzel SW - přepínač
Stromové sítě - tree-based networks Směrování dat v stromových sítích: posíláme data z uzlu v 1 do uzlu v 2 data se posílají směrem nahoru, až dosáhnou ke kořenu nejmenšího podstromu obsahujícího oba uzly v 1 a v 2 potom putují data směrem dolu k uzlu v 2 Kořen celého stromu může být úzkým hrdlem, řešením je potom tzv. tlustý strom - fat tree. Ten obsahuje znásobené spoje.
Tlustý strom - fat tree SW SW SW SW SW SW SW
Neregulární sítě Jde o sítě, jejichž graf nelze popsat nějakým jednoduchým pravidlem. Tyto sítě se vyskytují například v gridu.
Hodnocení přímých sítí I. V této části definujeme některé pojmy z teorie grafů, které jsou vhodné pro hodnocení přímých sítí. Definition Řád vrcholu (degree) u V je počet hran spojených s vrcholem u. Definition Graf G je regulární (regular) pokud mají všechny jeho vrcholy stejný řád.
Hodnocení přímých sítí II. Q n (n rozměrná hyperkrychle) je regulární s řádem n lineární řetězec a n-rozměrná sít nejsou regulární kvůli krajním vrcholům kruh a n-rozměrný torus jsou regulární s řádem 2n Regularita je výhodná vlastnost. V případě, že řešenou úlohu lze vhodně namapovat na regulární sít, nemusí program rozlišovat, na jakém uzlu běží.
Hodnocení přímých sítí III. Definition Graf G je řídký (sparse), pokud pro všechny grafy se stejnou topologií platí E G = O ( V G ). úplný graf není řídký ortogonální a stromové sítě jsou řídké
Hodnocení přímých sítí IV. Definition Posloupnost vrcholů a hran v 0, e 1, v 1, e 2, v 2,, e k, v k se nazývá sledem, jestliže každá hrana e i spojuje vrcholy v i 1, v i. Definition Sled, v němž se neopakuje žádný vrchol se nazývá cestou. Definition Počet hran v cestě udává její délku.
Hodnocení přímých sítí V. Definition Diametr (diameter) je vzdálenost mezi dvěma uzly grafu, jež mají mezi sebou největší vzdálenost. malý diametr znamená menší průměrnou vzdálenost mezi náhodně Výbornými uzly v grafu. komunikace probíhá na kratší vzdálenosti a nezatěžuje tolik uzlů snižují se prodlevy (latence) při komunikaci a celková zátěž sítě
Hodnocení přímých sítí VI. Graf Diametr úplná sít 1 hvězda 2 lineární řetězec p 1 kruh p/2 2D sít s rozměry m 1 m 2 m 1 + m 2 2D torus s rozměry m 1 m 2 (m 1 + m 2 )/2 Q n (n-rozměrná hyperkrychle) log 2 p (vyvážený) binární strom 2 log 2 p/2
Hodnocení přímých sítí VII. Definition Množině vrcholů resp. hran, jejichž odebrání rozdělí graf (tj. graf už není souvislý), se říká vrcholový resp. hranový řez. Definition Vrcholové resp. hranové propojení κ G resp. λ G grafu G je velikost nejmenšího vrcholového resp. hranového řezu. Theorem Označíme-li δ G minimální řád všech vrcholů v grafu, pak platí κ g λ G δ G.
Hodnocení přímých sítí VIII. Graf κ G λ G úplná sít p 1 p 1 hvězda 1 1 lineární řetězec 1 1 kruh 2 2 2D sít s rozměry m 1 m 2 min{m 1, m 2 } min{m 1, m 2 } 2D torus s rozměry m 1 m 2 2 min{m 1, m 2 } 2 min{m 1, m 2 } Q n (n-rozměrná hyperkrychle) n n (vyvážený) binární strom 1 1
Hodnocení přímých sítí IX. Propojenost (connectivity) je popsána parametry κ G a λ G je to míra počtu různých cest mezi dvěma libovolnými uzly čím vyšší je propojenost grafu tím vyšší datový tok lze dosáhnout mezi libovolnými uzly grafu sítě s malou propojeností jsou náchylné k přetížení v extrémním případě může nastat, že veškerá komunikace probíhá přes jeden uzel - viz. hvězda ALE - hvězda je určitě náchylnější k přetížení než např. ostatní stromové sítě, které mají stejné κ G i λ G
Hodnocení přímých sítí X. Definition Hranová bisekce je velikost nejmenšího hranového řezu, který rozdělí graf na dvě stejné poloviny (měřeno počtem vrcholů). 1 z p/2 vrcholů odebereme p/2 hran
Hodnocení přímých sítí X. Definition Hranová bisekce je velikost nejmenšího hranového řezu, který rozdělí graf na dvě stejné poloviny (měřeno počtem vrcholů). Graf Hranová bisekce úplná sít p 2 /4 1 hvězda p/2 lineární řetězec 1 kruh 2 2D sít s rozměry m 1 m 2 min{m 1, m 2 } 2D torus s rozměry m 1 m 2 2 min{m 1, m 2 } Q n (n-rozměrná hyperkrychle) p/2 (vyvážený) binární strom 1 1 z p/2 vrcholů odebereme p/2 hran
Hodnocení nepřímých sítí Poznámka: K hodnocení nepřímých (dynamických) sítí lze přistupovat jako k hodnocení přímých (statických) sítí, kde přepínače (switch) jsou reprezentovány uzly grafu a spoje mezi nimi odpovídají hranám.
Složitost komunikace v komunikačních sítích I. Nyní nás bude zajímat doba, za kterou zpráva (určitý objem dat) dojde po síti od zdroje k cíli.
Složitost komunikace v komunikačních sítích I. Nyní nás bude zajímat doba, za kterou zpráva (určitý objem dat) dojde po síti od zdroje k cíli. Tato doba závisí na následujících parametrech: inicializace (startup time) - t s zahrnuje čas nutný ke zpracování zprávy u odesílatele a příjemce skládá se z vytvoření hlavičky napočítání korekčních informací provedení routovacícho algoritmu nastavení sít ového rozhraní vyskytuje se pouze jednou při posílání jedné zprávy
Složitost komunikace v komunikačních sítích II. prodleva na routeru (per-hop time, node latency) -t h je to čas potřebný k určení správného výstupního kanálu/bufferu na routeru to následně určuje, jakým směrem bude zpráva dále poslána přenos (per-word time) - t w je to doba potřebná k přenosu celé zprávy od jednoho uzlu k dalšímu pokud je přenosová rychlost kanálu r slov za sekundu, pak t w = 1/r
Circuit routing I. 1. Circuit routing přenos začíná vytvořením obvodu od zdroje k cíli = alokace celé cesty vyšle se malá sonda, která hledá cestu k cíli sonda po cestě alokuje spoje pro následné poslání zprávy když sonda dosáhne cíle, pošle zpět potvrzující signál po nalezení celé cesty probíhá přenos zprávy zpráva se nedělí na pakety 2 během přenosu zprávy nejsou využívány žádné vyrovnávací paměti (buffery) obvod je udržován po celou dobu přenosu po ukončení přenosu je obvod uvolněn 2 Paket značí blok přenášených informací počítačovou sítí - http://en.wikipedia.org/wiki/packet_(information_technology)
Circuit routing II. Časová náročnost: Je-li p velikost sondy, l délka cesty od zdroje k cíli a m délka zprávy, pak trvá nalezení cíle - l(t h + pt w ) odeslání potvrzujícího signálu - lt w potvrzující signálu má délku 1 slovo vlastní přenos dat - mt w data jsou přenášena jakoby po jednom dlouhém datovém spoji. Celkem dostáváme: t CR = t s + l[t h + (p + 1)t w ] + mt w
Circuit routing III. tento způsob je vhodný pro přenášení dlouhých zpráv s malou četností vztah pro t CR neobsahuje člen tvaru lm, tj. téměř nezáleží na vzdálenosti komunikujících uzlů má-li se současně přenášet hodně zpráv, může se stát, že cesty dvou zpráv se budou "křížit"
Store-and-forward routing I. 2. Store-and-forward routing jde o pravý opak circuit routing zpráva putuje od jednoho uzlu ke druhému vždy je celá načtena do vyrovnávací paměti routeru a až poté je posílána dál
Store-and-forward routing II. Časová náročnost: Je-li l délka cesty od zdroje k cíli a m délka zprávy, pak trvá přenos celé zprávy - l(t h + mt w ). Celkem dostáváme: t SFR = t s + l(t h + mt w )
Store-and-forward routing II. Časová náročnost: Je-li l délka cesty od zdroje k cíli a m délka zprávy, pak trvá přenos celé zprávy - l(t h + mt w ). Celkem dostáváme: t SFR = t s + l(t h + mt w ) tento způsob není vhodný pro posílání velkých zpráv na delší vzdálenosti časová náročnost obsahuje výraz tvaru lm neblokuje tolik linky jako circuit routing toto směrování je vhodné hlavně pro krátké zprávy s velkou četností
Store-and-forward routing II. Časová náročnost: Je-li l délka cesty od zdroje k cíli a m délka zprávy, pak trvá přenos celé zprávy - l(t h + mt w ). Celkem dostáváme: t SFR = t s + l(t h + mt w ) tento způsob není vhodný pro posílání velkých zpráv na delší vzdálenosti časová náročnost obsahuje výraz tvaru lm neblokuje tolik linky jako circuit routing toto směrování je vhodné hlavně pro krátké zprávy s velkou četností Poznámka: Nyní se budeme snažit nějaký kompromis mezi circuit routing a store-and-forward routing.
Packet routing I. 3. Packet routing využijeme možnosti rozdělit zprávu na menší celky tj. na pakety následně využijeme principu pipelineningu každý uzel čeká jen na načtení celého paketu a ten ihned posílá dál jakmile tedy druhý uzel přijal první paket, může ho odesílat třetímu uzlu a současně přijímat druhý paket od prvního uzlu
Packet routing II. Časová náročnost: Je-li l délka cesty od zdroje k cíli m délka zprávy velikost paketu r + s slov r odpovídá vlastním datům s je velikost hlavičky a korekčních informací, pak trvá rozdělení zprávy na pakety (je úměrné velikosti zprávy) - mt p t p je čas nutný k převedení jednoho slova zprávy do paketové formy pro jednoduchost předpokládáme, že všechny pakety jdou stejnou cestou to nemusí být vždy pravda a nemusí to být vždy výhodné první paket dosáhne cíl za čas lt h + (r + s)t w další paket dosáhne cíl po (r + s)t w po prvním paketu takových paketů dojde ještě m/r 1
Packet routing III. Celkem dostáváme ( m ) t PR = t s + mt p + lt h + (r + s) t w + r 1 (r + s) t w ( m ) = t s + mt p + lt h + (r + s) t w r = t s + mt p + lt h + m = t s + lt h + mt z, kde t z = t p + ( 1 + s r ) tw. ( 1 + s r ) t w
Packet routing IV. díky aplikaci pipeliningu jsme se opět zbavili součinu lm ve výrazu pro časovou náročnost zahodíme-li předpoklad, že všechny pakety musí jít stejnou cestou, pak nehrozí, že by dlouhá zpráva prakticky zablokovala všechny spoje na této cestě packet routing je vhodný pro sítě s vyšším obsahem chyb pro spolehlivější sítě můžeme použít ještě efektivnější směrování
Cut-through routing I. 4. Cut-through routing Provádíme optimalizaci packet routingu. všechny pakety posíláme stejnou cestou celá zpráva má jen jednu hlavičku navíc zahodíme i korekční informace specializované komunikační sítě pro paralelní počítače mají vyšší spolehlivost, nemusíme se proto starat o korekci chyb pokud dojde během přenosu k chybě, pošleme prostě celou zprávu znovu zpráva se nedělí na pakety, ale tzv. flity = flow control digits ty oproti paketům neobsahují žádné informace navíc nejprve se posílá hlavička, která hledá cestu za ní následují flity jakmile je jeden flit přijatý, ihned se posílá dále díky tomu nejsou nutné velké vyrovnávací paměti
Cut-through routing II. Časová náročnost: Je-li p velikost hlavičky, l délka cesty od zdroje k cíli a m délka zprávy, pak hlavička musí projít přes l routerů - lt h + pt w celá zpráva pak dorazí v čase mt w po hlavičce Celkem dostáváme t CTR = t s + lt h + mt w.
Zjednodušený model složitosti komunikace I. Routing Časová náročnost circuit routing t CR = t s + l[t h + (p + 1)t w ] + mt w store-and-forward routing t SFR = t s + l(t h + mt w ) packet routing t PR = t s + lt h + mt z pro t z = t p + ( 1 + s ) r cut-through routing t CTR = t s + lt h + mt w
Zjednodušený model složitosti komunikace I. Routing Časová náročnost circuit routing t CR = t s + l[t h + (p + 1)t w ] + mt w store-and-forward routing t SFR = t s + l(t h + mt w ) packet routing t PR = t s + lt h + mt z pro t z = t p + ( 1 + s ) r cut-through routing t CTR = t s + lt h + mt w S výjimkou store-and-forward routing mají všechny modely přibližný tvar t COMM t s + lt h + mt w.
Zjednodušený model složitosti komunikace II. Jak mimimalizovat čas nutný ke komunikaci? 1. Provádět komunikaci ve větších celcích místo dvou krátkých zpráv, pošleme jednu delší jde o minimalizaci příspěvku členu t s u současných architektur platí t h << t s a t w << t s!!! tato optimalizace se opravdu vyplatí!!! 2. Minimalizace objemu dat jde o minimalizaci příspěvku členu mt w pokud je možné redukovat délky posílaných zpráv, pak je to také užitečná optimalizace
Zjednodušený model složitosti komunikace III. 3. Provádět komunikaci na kratší vzdálenosti jde o minimalizaci příspěvku členu mt w programátor ale vetšinou nemůže ovlivnit mapování procesů na procesory některé funkce standardu MPI tomu ale mohou napomoci některé architektury ale používají náhodné směrování dat, aby zabránily přetížení některých uzlů jedná se o optimalizaci silně závislou na architektuře platí, že t h << t s, a protože i l << m, pak je lt h << mt w tato optimalizace se složitě provádí a nemá velký smysl
Zjednodušený model složitosti komunikace IV. Protože platí lt h << mt w, můžeme komunikační model zjednodušit na t COMM t s + mt w. tento model nezávisí na vzdálenosti je to, jako kdybychom měli k dispozici úplnou sít proto není nutné vyvíjet zvláštní programy pro různé topologie to však nemusí platit o sítích, které jsou náchylné k zahlcení např. hvězda, lineární řetězec, kruh
Náchylnost sítě k zahlcení pokud spolu komunikují vždy jen sousedící uzly, pravděpodobnost zahlcení je malá předpokládejme, že spolu komunikují náhodné dvojice uzlů rozdělíme graf na dvě poloviny a do každé z nich dáme jeden ze dvou komunikujících uzlů pravděpodobnost zahlcení sítě je nyní dána počtem hran, které vedou mezi oběma polovinama grafu odebrání těchto hran odpovídá hranovému řezu nejhorší případ nastane, pokud trefíme minimální hranový řez tj. hranovou bisekci sítě se proto někdy hodnotí spíše podle tzv. efektivní šířky pásma sítě ta je dána jako EBw = Bw b p pro EBw - efektivní šířka pásma sítě (effective bandwidth) Bw - šířka pásma jednotlivých spojů (bandwidth) b - velikost hranové bisekce p - počet uzlů
Některé pojmy pro popis rychlosti komunikace rozpětí kanálu (channel width) počet bitů, které mohou být přenášeny současně (počet drátů) rychlost kanálu (channel rate) maximální přenosová rychlost v B/s na jeden drát šířka kanálu (channel bandwidth) maximální přenosová rychlost celého kanálu šířka bisekce (bisection bandwidth) součet šířek kanálů odpovídajících hranám bisekce
Deadlock K deadlocku dochází v situaci, kdy zpráva/paket potřebují linku, kterou používá jiná zpráva/paket, jež jsou zablokovány jinými zprávami/pakety.
Deadlock II.
Deadlock II. MSG 4 MSG 3 MSG 1 MSG 2
Deadlock II. MSG 4 MSG 3 MSG 1 MSG 2
Deadlock II. MSG 4 MSG 3 MSG 1 MSG 2
Deadlock II. MSG 4 MSG 3 MSG 1 MSG 2
Deadlock III. deadlock hrozí hlavně u cut-through routing celá zpráva jde jednou cestou využívají se malé vyrovnávací paměti řešením je použít chytré algoritmy, které deadlocku předejdou - adaptivní použít větší buffery, které pojmou celou zprávu deadlock hrozí zejména při velké četnosti zpráv takové zprávy by pravděpodobně neměly být příliš dlouhé
Algoritmy pro směrování dat v síti I. směrovací algoritmy určují, jakou cestou půjde zpráva od zdroje k cíli vstup je: zdrojový uzel, cílový uzel, (stav sítě) výstupem je: jedna nebo více cest sítí několik záchytných uzlů
Algoritmy pro směrování dat v síti II. Minimalizující/neminimalizující algoritmy minimalizující algoritmy vždy vrací některou z nejkratších cest to může vést k přetížení některých uzlů
Algoritmy pro směrování dat v síti III. Adaptivní/deterministické algoritmy deterministické algoritmy vrací pro stejný zdrojový a cílový uzel stejnou cestu adaptivní algoritmy berou v úvahu i stav sítě
Algoritmy pro směrování dat v síti IV. Progresivní/vratné algoritmy u progresivních algoritmů se paket nikdy nevrací zpět
Algoritmy pro směrování dat v síti V. Distribuované/zdrojové/hybridní algoritmy zdrojové algoritmy vypočítají celou cestu na zdrojovém uzlu distribuované algoritmy řeší další postup sítí vždy na daném uzlu s hlavičkou zprávy u hybridních algoritmů se na zdrojovém uzlu určí záchytné uzly, přes které bude zpráva putovat, a přesná cesta se vypočítá až za chodu
Algoritmy pro směrování dat v síti VI. Příklad: Algoritmus hot-potato paket se posílá tak, aby se přibližoval k cíli jsou-li požadované linky obsazené, pošle se paket náhodným jiným směrem
Složitost komunikace v nepřímých sítích u nepřímých sítí se pomocí vhodného algoritmu správně nastaví přepínače a data pak putují přímo od zdroje k cíli to se nejvíce podobá circuit-routingu není zde závislost na vzdálenosti l rychlost komunikace je určeně hlavně datovou propustností případy, kdy dojde k blokující komunikaci, se špatně modelují
Složitost komunikace u architektur s distribuovanou pamětí při programování pro architektury s distribuovanou pamětí má programátor větší kontrolu nad komunikací - sám určuje, které uzly spolu budou komunikovat složitost komunikace je pak dána přímo složitostí komunikace použité komunikační sítě
Složitost komunikace u architektur se sdílenou pamětí zde nelze obecný model prakticky vůbec odvodit programátor většinou nemá šanci poznat, zda přistupuje do lokální nebo globální paměti vliv cache se popisuje velice těžké přístup mimo cache často spouští cache coherence algoritmus ztráta výkonu je znatelnější než u sekvenčních architektur složitost cache coherence algoritmu se také těžko popisuje spatial locality, false sharing a temporal locality se také těžko modelují prefetching je často nejvíce ovlivněn překladačem