Arkitektura Paraleloak IF - EHU 6. Konputagailu Paraleloen Komu-nikazio Sarea. Mezu Ematearen bidezko Komunikazioa. - Sarrera - Kommutagailuen bidezko sareak - Mezu-bideragailuen bidezko sareak - Komunikazio-estrategiak - Arazoak
Sarrera Konputagailu paraleloek euskarri eraginkorra erabili behar dute prozesuen arteko komunikaziorako, dela memoria partekatua atzitzeko (zentralizatua, SMP, edo banatua, DSM), dela prozesuen arteko mezuak garraiatzeko (MPP). Komunikazio-sarea arkitektura-ereduen independentea bada ere, eredu bakoitzari egokitutako sareak erabiltzen dira.
SMP multiprozesadoreek busa erabili ohi dute memoria atzitzeko. Sarrera SMP multiprozesadoreek busa erabili ohi dute memoria atzitzeko. M P C busa Atzipenen latentzia atzitu behar den memoria-posizioen independentea da: datu guztiak “distantzia” berdinera daude (UMA). Busa erraz kudeatzen eta sinplea den sarea da, baina hedatzeko arazoak ditu: - aldi bereko komunikazio bakar bat baino ez du onartzen (sinplifikatuz). - ase egiten da prozesadore kopurua hazten denean.
Sarrera Prozesadore asko konektatu ahal izateko, memoria fisikoki banatu behar da (agian helbide-espazioa partekatua: DSM). Beste komunikazio-sare mota bat behar dugu. P C M sare orokorra R Memoria-atzipenen edo mezuen latentzia ez da konstantea: komunikazioa azkarragoa izango da hurbilago dauden prozesadoreekin. Komunikazio-sarearen portaera oso garrantzitsua da latentziak ahalik eta txikienak izan daitezen.
Komunikazio-sare egokien ezaugarri batzuk: Sarrera: ezaugarriak Komunikazio-sare egokien ezaugarri batzuk: komunikazioen latentzia txikia izatea. aldi bereko komunikazio asko onartzea (hau da, throughput handia izatea). ahal den neurrian, hutsegiteak (matxurak) izanda ere funtzionatzen jarraitzea. eraikitzeko eta zabaltzeko erraza izatea, eta bideak aurkitzeko algoritmoak sinpleak izatea.
Komunikazio-azpiegiturak bi atal ditu: Sarrera Komunikazio-azpiegiturak bi atal ditu: - hardwarea loturak, kommutagailuak, mezu-bideragailuak, prozesadoreekiko interfazea. - softwarea komunikazio-protokoloak.
Sarrera: topologia Topologiak sarearen forma adierazten du, hau da, prozesadoreen arteko konexioak zehazten ditu, grafo baten bidez. Grafoaren osagaiak: - nodoak: prozesadoreak, edo mezuak kudeatzeko gailu bereziak. - arkuak: nodoen arteko konexioak.
Sareen ezaugarri topologiko nagusiak: Sarrera: topologia Sareen ezaugarri topologiko nagusiak: Konplexutasuna - Gradua: nodoen lotura kopurua. Guztietan kopurua bera bada, sarea erregularra da. - Simetria: sarea berdin “ikusten” da nodo guztietatik. - Hedagarritasuna: handitzeko erraza den edo ez. Fidagarritasuna - Hutsegiteekiko tolerantzia: matxurak onartzen diren edo ez. - Arku- eta nodo-konektibitatea: kendu behar diren osagaiak grafoa (sarea) ez-konexo bihurtzeko.
Sareen ezaugarri topologiko nagusiak: Sarrera: topologia Sareen ezaugarri topologiko nagusiak: Trafikoa - Erdibiketa: grafoa bi zati berdinetan banatzeko kendu behar diren loturak. Distantziak (latentzia) - Batez besteko distantzia: d = Σ dij / P(P-1) - Diametroa: bi nodoren arteko distantzia maximoa.
Sarrera: sailkapena Bi motako sareak: 1. Dinamikoak 2. Estatikoak - kommutagailuen bidezko sareak - SMP sistemetarako (ez bakarrik) - telefono-sareetatik eratorriak 2. Estatikoak - mezu-bideragailuak (routers) - MPP sistemetarako
a. Kommutagailuzko sareak Kommutagailua: hainbat sarrera eta irteera konektatzen duen gailua. k = 2 graduko komm. 1 S0 S1 I0 kontrol-seinaleak I1 S0 → I0, I1 S1 → I0, I1 S0 → I0 S1 → I1 S0 → I1 S1 → I0
a. Kommutagailuzko sareak 1. Crossbar sarea: denak denekin konektatuta. Kommutagailu bakoitzak zutabe eta errenkada bana konektatzen ditu. Kostua handia izan daiteke: O(P2)
a. Kommutagailuzko sareak 2. Urrats anitzeko sareak Kommutagailuak hainbat urratsetan antolatzen dira, eta urratsetik urratserako konexioak “permu-tazio” jakin baten arabera egiten dira. permutazio bat proz. P0 Pp-1 (edo mem.)
Adibidea: Omega sarea Kommutagailuen arteko konexioak: tartekatze perfektua (perfect shuffle) logk P urrats P/k kommutagailu urratseko → guztira P/k × logk P komm. 2 4 6 1 3 5 7 1 2 3 5 6 7 4 Tartekatze perfektua: [0, 1, 2, ..., P-1] → [0, P/2, 1, P/2+1, ..., P/2-1, P-1] Bit bateko biraketa: 4 (100) → 1 (001) 5 (101) → 3 (011)
Omega sarea: ezaugarri topologikoak 2 4 6 1 3 5 7 Diametroa: logk P B. b. distantzia: logk P Simetrikoa (erregularra) Gradua: 2, 4... (k) Huts. tolerantzia: txikia
Bideratzea Omega sarean (routing). Nola aukeratzen da bidea i-tik j-ra joateko? 1 Helburu-helbideko bitak 0: 0 irteera / 1: 1 irteera → 6 (110) 2 4 6 1 3 5 7 1 2 Bideratze-erregistroa: i xor j 0: segi / 1: gurutzatu BE = 100 xor 110 = 010
Omega sarea Irteera-gatazkak Omega sareak P komunikazio onartzen ditu aldi berean, baina ez edozein. 0 → 1 eta 6 → 0? 2 4 6 1 3 5 7 - bertan behera utzi - bufferrak erabili - bitan banatu Permutazio kopurua: P! Egin daitezke: 2 P/2 log P = P P/2 P = 8 → % 10; P = 16 → % 0,02
Omega sarea Broadcast Prozesadore batetik guztietara. 1 2 3 4 5 6 7 2 4 6 1 3 5 7 BC BC BC
Butterfly sarea Beste adibide bat: Butterfly sarea
permutazio batzuk, broadcast Laburpena busa Omega Crossbar-a Latentzia konstantea O(logkP) Banda-zabalera prozesadoreko O(w/P)→O(w) O(w)→O(w × P) O(w × P) Kable kopurua O(w) O(w × P × logkP) O(w × P2) Kommutagailu kopurua O(P) O(P/k × logkP) O(P2) Komunikazio-ahalmena banan-banan permutazio batzuk, broadcast permutazio guztiak
komunikazioen kudeatzailea b. Mezu-bideragailuzko sareak Sarea osatzeko adreilua: mezu-bideragailua. bertako prozesadorea/memoria router-a komunikazioen kudeatzailea sareko loturak komunikazio-sarea Sare estatikoen “nodoa”: prozes./mem. + mezu-biderag. Nodoen arteko distantzia ez da konstantea. Bi noranzko loturak.
bideratze-funtzioa + crossbar-a Mezu-bideragailua Hainbat sarrera- eta irteera-portu, paketeak hartzeko eta bidaltzeko; buffer multzo bat, paketeak aldi batean metatzeko; eta automata bat, mezuak prozesatu eta dagokien irteera esleitzeko. sarrerako portuak irteerako portuak bertako prozesadorera bertako prozesadoretik komunikaziorako loturak bufferrak bideratze-funtzioa + crossbar-a
Topologia erabilienak 1 Crossbar sarea: denak denekin. Zaila eraikitzeko eta kostu handikoa, P handia denean. Gainera, bideragailuen gradua (lotura kopurua) ez da konstantea: P-1.
Topologia erabilienak 2 Dimentsio bakarreko sareak: katea, eraztuna. Gradua Simetria Hutseg. Tolerantzia Diametroa Batez b. distantzia 2 2, erregularra ez bai lotura bat bi lotura P-1 P/2 P/3 (P handia) [ (P+1)/3 ] P/4 (P handia) [ P2 / 4(P-1) ]
Topologia erabilienak 3 Mailak eta toruak (n dimentsio, k>2 nodo dimentsioko). k→ P = kn Loturak Gradua Simetria Hutseg. Toleran. Hedagarritasuna n kn-1 (k-1) n kn 2n 2n, erregularra ez bai handia (n) handiagoa (2n) erraza erraza
Topologia erabilienak 3 Mailak eta toruak (n dimentsio, k>2 nodo dimentsioko). k→ P = kn Erdibiketa Diametroa Batez b. distantzia kn-1 2 kn-1 n (k-1) n k/2 ~ n k/3 (k handia) ~ n k/4 (k handia)
Topologia erabilienak 4 Hiperkuboak: maila baten kasu partikularra, dimentsio bakoitzean bi nodo baino ez dituena. 0000 0001 0100 1000 0010 1111 0101 0110 1100 Loturak, helbidean bit batean bereizten diren nodoekin. (xn-1, xn-2, ..., x1, x0) → (xn-1, xn-2, ..., x1, x0) ...
Topologia erabilienak 4 Hiperkuboak: parametro topologikoak. Nodoak Loturak P = 2n → n = log2 P 0000 0001 0100 1000 0010 1111 0101 0110 1100 P/2 log2 P Gradua Simetria Huts. Tol. Hedag. Erdibiketa n (log2P, ez da konstantea!) bai oso handia zaila P/2 (oso handia) Diametroa B. b. distantzia n ~ n/2 (n handia)
Topologia erabilienak 5 Arbolak eta arbola sendoak (fat tree). mezu-bideragailuak prozesadoreak arbola bitarra (k = 2) fat tree edo arbola sendoa
Topologia erabilienak 5 Arbolak eta arbola sendoak (fat tree). Gradua Sakonera Simetria Huts. Tol. Hedag. Erdibiketa k (ohikoa, 4) logk P bai handia erraza P/2 Diametroa B. b. distantzia 2 logk P fat tree edo arbola sendoa ~ 2 logk P – 2/(k-1) (P handia)
parametro topologikoak (P bikoitia, handia) Topologien laburpena parametro topologikoak (P bikoitia, handia) Proz. Gradua Simetr. Loturak dbb Dmax Erdib. Arku-konek. Crossbar-a P P-1 bai P (P-1) 1 P2/4 Omega [komm.] k P (logkP+1) [ P/k logkP ] logkP - Maila (n / k>2) P = kn 2n ez n kn-1 (k-1) ~ n k/3 n (k-1) kn-1 n Torua nP ~ n k/4 n k/2 2 kn-1 Hiperkuboa P = 2n (logP) P/2 logP ~ n/2 P/2 Arbola (fat tree) P logkP ~ 2 logkP - 2/(k-1) 2 logkP
Topologien laburpena Adibidez, P = 4.096 nodo: D dbb 2D maila 2D torua 3D maila 3D torua Hiperkuboa Arbola (k=4) 126 42,7 64 32 45 15,9 24 12 12 6 12 11,3
Topologien laburpena Hiperkuboak parametro topologiko oso onak ditu, baina konplexua da prozesadore kopurua handia bada; gainera, gradua ez da konstantea. Lehenbiziko MPP sistemetan erabili zen (prozesadore kopuru txikia, eta mezuen latentzia distantziaren mendekoa). 2D eta 3D mailak eta toruak asko erabiltzen dira MPP sistemetan: topologia sinpleak dira eta gradua txikia da. Distantzia-parametroak handiagoak dira, baina mezuak transmititzeko teknika aldatu zen eta latentzia ez da distantziaren mende (ez asko). Arbolak (edo baliokideak diren butterfly eta antzeko sareak) ere erabiltzen dira (esaterako, cluster-ak osatzeko, Myrinet), prozesadore kopurua handia denean konplexuak badira ere.
kontrol-informazioa (BE) Komunikazioa Prozesuen arteko komunikazioa gauzatzeko erabiltzen da sarea, eta horretarako mezuak bidaltzen dira, prozesutik prozesura. Nola bidaltzen dira mezuak? nondik? nola aukeratzen da bidea?... Mezuen (paketeen) egitura goiburukoa datuak bukaera kontrol-informazioa (BE) Informazio-unitatea: flit bat (eskuarki, byte bat). Flit bat transmititzeko denbora, “ziklo” bat.
Komunikazio-patroiak Mezuen tamaina Oro har, hainbat tamainatako mezuak garraiatu behar dira. Kontrol-mezuak txikiak ohi dira (byte batzuk); datu-mezuak, handiagoak (eskuarki tamaina finkoko paketetan banatuta). Komunikazio-patroiak Norekin eta noiz egiten den komunikazioa zehazten du. Jakina, aplikazioaren araberakoa da.
Komunikazio-patroiak Ohiko komunikazio-patroi batzuk: - Zorizkoa: komunikatzeko probabilitatea bera da edozein nodoren artean eta denboran zehar. - Distantziaren funtzioak: nodo batzuekin beste batzuekin baino probabilitate handiago dago komunikatzeko, distan-tziaren arabera. dist. K. P. - Broadcast, multicast, reporting... - Matrize iraulia, FFT, perfect shuffle...
Bidea eraikitzea Bidea eraikitzea - Zirkuitu-kommutazioa (circuit switching) Mezua bidali baino lehen, bide “pribatu” bat erreserbatu egin behar da; horretarako, zunda-mezu bat bidaltzen da helbururaino. Bidea eraiki denean, mezu osoa transmititzen da (ez da paketetan banatzen). Telefono-sarea, esaterako. Arazoak: denbora behar da bidea osatzeko; eta sareko hainbat lotura erreserbatu egiten dira, nahiz eta une horretan ez erabili.
Bidea eraikitzea Bidea eraikitzea - Pakete-kommutazioa (packet switching) Mezua tamaina finkoko hainbat paketetan banatzen da. Pakete bakoitzak helburuari buruzko informazioa darama, eta bideragailuz bideragailu doa helbururaino, sarean dauden gainerako paketeekin lehian baliabideak erabiltzeko. Adibidez, posta-zerbitzua. Arazoak: gainkarga bat sortzen da, pakete bakoitzak kontrol-informazioa eraman behar duelako. Gainera, mezua berrosatu egin behar da helburuan.
Paketeak bideratzea (routing) Nondik doaz paketeak iturburutik helbururaino? Zein da bidea? - nola adierazten da hartu behar den bidea? bideratze-erregistroa, BE (routing record) - bide bakarra dago? luzera minimoko bideak, baina, zein?
Paketeak bideratzea (routing) Bi aukera helburura heltzeko: - Helbide absolutua adierazi paketean. Informazio hori tarteko bideragailuetan prozesatuko da irteera aukeratzeko (taula bat, funtzio bat...). - Paketeak bideratze-erregistroa darama, bidea zehazteko; eskuarki, zenbat pauso eman sareko dimentsio bakoitzean. BEa bideragailu bakoitzean egokitu behar da. Paketea helburura heldu da BEko osagai guztiak 0 direnean.
Bideratze-erregistroa Bideratze-erregistroa mailetan X: (xn-1, xn-2, ..., x1, x0) → Y (yn-1, yn-2, ..., y1, y0) 4 (1,0) 15 (3,3) [2,3] [2,2] [2,1] [2,0] [1,0] [0,0] Nahikoa da koordenatuen kenketa egitea dimentsio bakoitzean eman behar diren pausoak adierazteko. BE = [yn-1 - xn-1, yn-2 - xn-2, ..., y0 - x0] 4 (1,0) → 15 (3,3) BE = [2, 3]
Bideratze-erregistroa Bideratze-erregistroa toruetan Dimentsio bakoitzean, bi aukera daude helburura joateko: “aurretik” edo “atzetik”. Ez da eraztun erdia baino pauso gehiago eman behar noranzko batean. 4 (1,0) 15 (3,3) [2,-1] [2,0] [1,0] [0,0] Beraz, koordenatuen kenketa egin ondoren, emaitzak egokitu behar dira bide motzenak aukeratzeko: BEi > k/2 → BEi = BEi – k BEi < -k/2 → BEi = BEi + k 4 (1,0) → 15 (3,3) BE = [2, 3] → [2, -1]
Bideratze-erregistroa Bideratze-erregistroa hiperkuboetan [1000] Dimentsio bakoitzean bi nodo baino ez dago; beraz, dimentsioko pauso bakar bat eman daiteke, dimentsio horretako koordenatuak desberdinak badira: 1001 1110 0000 0001 0100 1000 0010 1111 0101 0110 1100 0011 0111 1101 [1110] [1100] [0000] BE = [i xor j] 1010 1011 2 (0010) → 12 (1100) BE = [1110]
Bide jakin bat aukeratzeko estrategiak Bide-aukeraketa Bide jakin bat aukeratzeko estrategiak Bideratze-erregistroak ez du bide bakar bat zehazten (oro har). Beraz, zein erabili behar da? 1. Bideratze estatikoa Xtik Yra joateko, bide bakarra eta beti bera erabiltzen da: DOR. 4 (1,0) 15 (3,3) + Sinplea da + Paketeak ordenan heltzen dira - Ez dira aurrera jarraitzeko aukera guztiak aprobetxatzen
Bide jakin bat aukeratzeko estrategiak Bide-aukeraketa Bide jakin bat aukeratzeko estrategiak 2. Bideratze moldakorra Sistemaren egoeraren arabera erabakitzen da bidea bideragailu bakoitzean (adi! informazio lokala erabili behar da). 4 (1,0) 15 (3,3) + Trafiko handiko guneak saihestu daitezke (sareko topologia aprobetxatuz) - Konplexuagoa da (erabaki egin behar da) - Paketeak desordenatu daitezke - Blokeoak sor daitezke
Bide jakin bat aukeratzeko estrategiak Bide-aukeraketa Bide jakin bat aukeratzeko estrategiak 3. Bide ez minimoak Oro har, luzera minimoko bideak erabili behar dira. Zenbait kasutan, egokia izan daiteke bide luzeagoak erabiltzea, dela trafikoa, dela sareko matxurak gainditu ahal izateko.
Informazio-jarioaren kontrola Pakete batek L flit ditu (batzuek kontrolekoak, besteak datuak). Nola transmititzen dira paketeen flitak bideragailuen artean? Zer egin behar da transmititzen ari den pakete baten flitekin? Bi aukera: - Store-and-forward ohikoa konputagailu-sareetan - Cut-through / Wormhole multikonputagailuetan erabiltzen dena
tarteko bideragailuak Informazio-jarioaren kontrola: SF Store-and-forward 1 2 3 4 tarteko bideragailuak t Pakete osoa (flit guztiak) transmititzen da ondoz ondoko bi bideragailuren artean. Transmisioak irauten duen bitartean, barneko buffer batean gordetzen da. 2 3 4 1 3 4 1 2 4 1 2 3 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 1 2 3 4 Tsf ~ L × d 2 3 4 1 3 4 1 2 4 1 2 3 1 2 3 4
tarteko bideragailuak Informazio-jarioaren kontrola: CT-WH Cut-through / Wormhole Pakete baten goiburuko aurreneko flita prozesatu ondoren, hurrengo bideragailura transmititzen da, pakete osoa heldu arte itxaron gabe. 1 2 3 4 tarteko bideragailuak 2 3 4 1 3 4 1 2 4 2 3 1 Komunikazioa “segmentatu” egiten da. 1 2 4 3 4 1 2 3 1 2 3 4 Tct/wh ~ L + d
Informazio-jarioaren kontrola: CT-WH Cut-through / Wormhole Desberdintasuna: zer egin behar da pakete baten goiburuko-flitak aurrera jarraitu ezin badu? Wormhole Paketearen flit guztiak gelditzen dira, dauden tokietan. 2 3 4 1 3 4 1 2 3 4 1 2 Ez dira bufferrak erabili behar. 4 2 3 1 1 2 4 3 4 1 2 3 1 2 3 4
Informazio-jarioaren kontrola: CT-WH Cut-through / Wormhole Desberdintasuna: zer egin behar da pakete baten goiburuko-flitak aurrera jarraitu ezin badu? Cut-through Aurreneko flita gelditzen da, baina gainerakoak aurrera doaz, eta bideragailuan bertan gordetzen dira, bufferretan. 2 3 4 1 4 3 1 2 4 1 2 3 1 2 3 4 1 2 3 4 4 1 2 3 1 2 3 4
Baliabide-gatazkak: bufferrak Paketeetarako bufferrak Mezu-bideragailuek paketeak (edo flit batzuk) gordetzeko tokia (memoria) izan ohi dute. SF → gutxienez pakete baterako buffer bat. WH → flit baterako memoria-espazioa (sarrera-portua). CT → tarteko soluzioa da; pakete bat(tzuk) edo flit batzuk gordetzeko ahalmena behar da. Pakete askotarako tokia bideragailuetan? Ez. - ez da ohikoa pakete asko blokeatuta egotea. - azkarra izan behar du bideragailuak, hau da, sinplea.
Baliabide-gatazkak: bufferrak Nola egituratzen dira bufferrak? Partekatuak edo banatuak? Partekatuak + memoria-espazioa hobeto kudeatzen da. - konplexuagoak dira, aldi bereko hainbat sarrera eta irteera onartu behar direlako.
Baliabide-gatazkak: bufferrak Nola egituratzen dira bufferrak? Sarreretan edo irteeretan? Irteeretan + paketeak ez dira ordenan tratatu behar (eraginkort.). - kudeatzeko konplexuagoak dira, aldi bereko hainbat sarrera onartu behar direlako.
Baliabide-gatazkak: bufferrak Nola egituratzen dira bufferrak? Eta bufferrak betetzen badira? kontrol-lerroak datu-lerroak tokia? bai/ez datuak Ez da ohiko egoera izan behar, sarearen komunikazio-ahalmena gaindituta dagoelako. Bakarrik trafiko handiko uneak kudeatzeko.
Latentzia eta mezu-emaria Komunikazio-sarea programak paraleloan exekuta-tzeko baliabide bat baino ez da (beste “unitate funtzional” bat), ahalik eta eraginkorrena izan behar duena. Kalitateko parametro nagusiak: - paketeen latentzia: behar den denbora transmisioa gauzatzeko. - mezu-emaria (throughput): sareak onar dezakeen trafiko-maila.
Latentzia eta mezu-emaria Definizio batzuk: - Loturen zabalera: paraleloan transmititu daitekeen bit kopurua, “phit” bat (eskuarki, 8 bit). - Transmisio-zikloa: “phit” bat transmititzeko denbora (ziklo bat). - Loturen banda-zabalera (bandwidth), B: segundo batean transmititu daitekeen informazio kopurua. - Bideratze-denbora (routing time), tr: pakete baten goiburukoa prozesatzeko denbora.
Latentzia eta mezu-emaria Komunikazio-denbora edo latentzia (trafikorik gabe) L: paketearen luzera (bytetan = flitetan) d: distantzia - Store-and-forward Tsf = d × (L/B + tr) d × L d + L - Cut-through / Wormhole Tct = d × (1/B + tr) + (L-1)/B
Latentzia eta mezu-emaria Adibidea: P = 1.024, L = 256 byte, tr = 1 ziklo. hiperkuboa 2D torua 2D maila D 10 32 62 d 5 16 22 max. 2.570 8.224 15.934 b.b. 1.285 4.112 5.654 SF max. 275 319 379 b.b. 265 287 299 CT
Latentzia eta mezu-emaria Sareko trafikoa kontuan hartuz. Trafikoa (b/s) Latentzia (s) trafiko maximoa Mezu-emaria (b/s) Trafikoa (b/s) trafikorik gabeko latentzia
Latentzia eta mezu-emaria Cut-through versus wormhole. Trafikoa (b/s) Latentzia (s) CT Mezu-emaria (b/s) Trafikoa (b/s) CT WH WH
Latentzia eta mezu-emaria Mezu-emari maximoa (zorizko trafikoa). PaK: prozesadore bakoitzak injekta dezakeen L fliteko (byteko) pakete kopurua segundoko EBZ: erdibiketaren banda-zabalera (= Erdib × B) P/2 erdibiketako loturak PaK/2 PaK/2 P/2 × (PaK × L) × 1/2 = EBZ PaK = 4 × EBZ / (P × L) 2D maila 2D torua 8D hiperk. erdibiketa flit kop. max. / z. P = 256 16 32 128 0,25 0,5 2
komunikazioa bidera-gailuen artean Latentzia eta mezu-emaria Eredu orokorra Tkom = thasi + tflit × L R = L / Tkom transmisio-abiadura Rmax = lim R (L → ∞) abiadura maximoa L1/2 = thasi / tflit abiadura max. erdia eskuratzeko Laburrean: komunikazio-denboraren osagaiak komunikazioa bidera-gailuen artean pak. proz. denb. itx.-denb. bufferretan igorlea hartzailea
Zenbait arazo Komunikazio-prozesua prozesu banatua da, eta paraleloan exekutatzen da hainbat mezu-bideragailutan. Beraz, dagoeneko aztertu dugun arazo bat berriro ager daiteke: elkarblokeoa (deadlock) (livelock, starvation...). Blokeoak: pakete multzo batek aurrera jarraitzeko baliabideak agortzen ditu (CT moduan, bufferrak; WH moduan, loturak...), eta betiko geldituta geratzen da.
Zenbait arazo Adibidez, WH moduan: m1: 0,1→2,3 m2: 1,3→3,1 (0,0) (0,3) m2: 1,3→3,1 m4: 2,1→0,2 (3,0) (3,3) m3: 3,2→1,1
Blokeo aurkako estrategiak Zer egin blokeoekin? - blokeoak sortzen ez dituzten topologiak edo/eta bideratze-estrategiak baino ez erabiltzea. - blokeoak sor daitezkeela onartzea, eta, sortzen direnean, detektatzea eta konpontzea. Ikus ditzagun aukera erabilienak.
Blokeo aurkako estrategiak 1. Bideratze estatikoak laguntzen du. Adibidez, DOR bideratze estatikoa erabiliz, mailetan ez dira blokeoak sortzen. m2: 1,3→3,1 (0,0) (0,3) (3,0) (3,3) m1: 0,1→2,3 m3: 3,2→1,1 m4: 2,1→0,2
Blokeo aurkako estrategiak 2. Baina ez da nahikoa, baldin eta topologiak zikloak baditu. 0→2 1→3 2→0 3→1 3 1 2
Blokeo aurkako estrategiak 3. Kanal birtualak (virtual channels) Bideragailuen loturak blokeatuta ez mantentzeko, buferrak bi (hainbat) klasetan banatzen dira. B0 B1 KB0 KB1
Blokeo aurkako estrategiak 3. Kanal birtualak Helburu bikoitza: 1 Eraginkortasuna hobetzea: pakete batek aurrera jarraitu ezin badu, atzetik datorren eta bidea libre duen paketea ez geldiaraztea. 2 Deadlock egoerak saihestea.
Blokeo aurkako estrategiak 3. Kanal birtualak 2 Deadlock egoerak saihestea 3 1 2 1→3 2→0 3→1 0→2 KB1 KB0
Zenbait arazo Laburbilduz Mailak, DOR → ez dago blokeorik Toruak, DOR, 2 kanal birtual → ez dago blokeorik 4. Baina, erabili al daiteke bideratze moldakorra eta blokeoak ez izatea? - maila birtualak - biratze kontrolatuak (turn model) - bide “seguruak” - paketeen injekzioa kontrolatzea
Zenbait arazo 4a. Maila birtualak (2D) - Gehitu bi kanal birtual kanal fisiko bakoitzeko. - Sailkatu paketeak lau kategoriatan, helburuen posizioen arabera: NE, ES, SW, WN. W1 N0 N1 E0 - Lau maila birtual sortu: NE: N1-E0 ES: E1-S0 SW: S1-W0 WN: W1-N0 S1 W0 E1 S0 - Maila birtual bakoitzean, paketeek nahi duten bidea har dezakete, ezinezkoa baita zikloak sortzea.
Zenbait arazo 4b. Turn model (mailak) - Ziklo bat osatzeko, lau biraketa egin behar dira. DOR bideratze estatikoa erabiltzen denean, horietako bi debekatuta daude. - Nahikoa da bat debekatzea zikloak ez sortzeko; ad., mendebaldera biratzea: - mendebaldera ez badoaz, nahi den moduan; - bestela, mendebalderako bidea hasieran egin behar da. west-first
Zenbait arazo 4c. Bide seguruak Kasu honetan, onartu egiten da paketeak blokeatu daitezkeela. Gertatzen denean, detektatu eta kopondu egiten da; horrela (mailetan eta toruetan, adibidez): - 2 kanal birtual (2D), bi sare birtual osatzeko. - Paketeak sare batean injektatzen dira, eta nahi duten moduan mugitzen dira. Beste sarea modu seguruan mugitzeko erabiltzen da (adibidez, DOR, 2D maila batean). Pakete bat blokeatzen denean, sare segurura igaroarazten da, eta hor mugituko da helburura heldu arte.
4d. Paketeen injekzioa kontrolatzea Zenbait arazo 4c. Bide seguruak Adi: nola detektatu blokeoa??? Denbora jakin bat pasa eta gero mugitu gabe (!?). 4d. Paketeen injekzioa kontrolatzea Baliabideak agortu egiten direlako gertatzen dira blokeoak. Beraz, bideragailuek errefuxatu egingo dute pakete bat baldin eta, hartuz gero, bufferrak betetzen badira. Horrela ez dira baliabideak inoiz agortuko (Mare Nostrum).
Zenbait arazo Laburbilduz Bideratze estatikoa: - Mailak, DOR → ez dago blokeorik - Toruak, DOR, 2 kanal birtual → ez dago blokeorik Bideratze moldakorra: - Oro har: mailetan, kanal birtual bat dimentsio bakoitzeko, eta toruetan, bi kanal birtual. - Beste estrategia batzuk. - Agian, zikloak sortzen ez dituzten topologiak: arbolak! Adi: bideragailuak sinplea izan behar du, paketeak ahalik eta azkarren prozesatzeko. Beraz, litekeena da bideratze estatikoa nahikoa izatea!
Zenbait arazo Beste arazo batzuk Livelock Paketeak aurrera eta atzera doaz, baina ez dute lortzen helburura heltzea. Arazoa ager daiteke paketeak, “denbora ez galtzearren”, luzera minimoko bideetatik desbideratzen badira. Lehentasunezko kontua izan daiteke. Starvation Prozesadore batzuk ez dute lortzen haien paketeak sarean injektatzea, trafiko handia dagoelako beti inguruetan. Ondo kudeatu behar dira paketeak injektatzeko estrategiak.
Komunikazio-protokoloak Ez ahaztu: elementu askok parte hartzen dute komunikazio-prozesuan. sarea + bideragailuak interfazea + prozesadorea (+SE?) P1 P2 Komunikazioko eragiketa motelenak zedarrituko du sistemaren komunikazio-abiadura.
Komunikazio-protokoloak Paketeen transmisioa baino ez dugu kontuan hartu. Baina “prozesadorea/sarea” interfazea ere oso garrantzitsua da: nola injektatzen dira paketeak sarean? nola ateratzen dira? Hainbat komunikazio-protokolo daude prozesu horiek arautzeko: - Sinpleena: TCP/IP - Eraginkorragoak: > 0 kopiako protokolo estandarrak: VIA, Infiniband > bereziak: gm (myrinet)...
Komunikazio-protokoloak 1. TCP / IP reliable / connection oriented Lehenbiziko cluster-en protokoloa erabiltz. mem. Ohiko gauzatzea: kopia sist. mem. kopia sist. mem. etena SE etena SE
Komunikazio-protokoloak Kontuz: sistema eragilea eta kopiak erabili behar izateak dakarren gainkarga handia izan daiteke. protokoloaren gainkarga 10 Mb/s Transmisio-denbora 100 Mb/s 1 Gb/s
Komunikazio-protokoloak 2. VIA (virtual interface architecture) Fabrikatzaile nagusien komunikazio-estandar(retako) bat: Ez dira kopiak egiten sistema eragileko memorian: bideragailuekin lan egiten da. -- mezu bat bidali baino lehen, tokia erreserbatzen da memorian, igorlean eta hartzailean. -- send/receive eragiketek deskriptore bat bidaltzen dute ilara batera paketeak prozesatzeko. -- baieztapenaren zain gera gaitezke, edo lanarekin jarraitu. Behe-mailako protokoloa da, eta gauzatze natiboak edo emulatuak erabiltzen dira.
Infiniband 3. InfiniBand (IBA) Helburua: prestazio handiko komunikazio-azpiegitura, kommutagailuetan (intra) eta bideragailuetan (inter) oinarrituta, SAN sareak osatzeko (bus partekatua ordezkatzeko). - Egokigailu bereziak erabiltzen dira nodoak konektatzeko: HCA (konputazio-nodoak) edo TCA (nodo laguntzaileak). - Sare lokaleko nodoak konektatzeko, kommutagailuak erabiltzen dira, eta bideragailuak sare lokalak haien artean konektatzeko. - Loturak 2,5 Gb/s-koak dira, noranzko bakarrekoak, puntutik puntura.
Errendimendu handiko komunikazio-azpiegitura (garestia). Myrinet 4. Myrinet Errendimendu handiko komunikazio-azpiegitura (garestia). 10 Gbit/s-ko loturak (full duplex), zuntz optikoa. Kommu-tagailuak crossbar batean (Clos sarea). Cut-through. Mezuak kudeatzeko software propioa (GM). (10) Gigabit Ethernet-eko inplementazioak / Via / Infiniband. Pakete txikien latentzia (MPI) < 2 µs (Gigabit Eth, 50 µs) Throughput maximoa: 9,6 Gbit/s
Myrinet
Myrinet
Myrinet
Komunikazio-protokoloak ADI: sistema paraleloa cluster bat bada, eta cluster-a osatzeko PCak erabiltzen badira, sarearen eta nodoen arteko konexioa PCI busaren bidez egingo da. Agian bus horrek zehaztuko du abiadura, eta ez sareko osagaiek! PCI → 32 bit / 33 MHz -- 64 bit / 66 MHz 110 - 480 MB/s PCI-X → 1 GB/s (2.0 → 4 GB/s) PCI Express → 200 MB/s kanal bakoitzeko (× 32 → 6,4 GB/s)
KS-ME | Komunikazio-protokoloak Arkitektura Paraleloak IF - EHU ADI: sistema paraleloa cluster bat bada, eta cluster-a osatzeko PCak erabiltzen badira, sarearen eta nodoen arteko konexioa PCI busaren bidez egingo da. Agian bus horrek zehaztuko du abiadura, eta ez sareko osagaiek! PCI → 32 bit / 33 MHz -- 64 bit / 66 MHz 110 - 480 MB/s PCI-X → 1 GB/s (2.0 → 4 GB/s) PCI Express → 200 MB/s kanal bakoitzeko (× 32 → 6,4 GB/s) any questions?