2. Konputagailu Paraleloak Arkitektura Paraleloak IF - EHU 2. Konputagailu Paraleloak (oinarrizko kontzeptuak) - Sarrera - SIMD konputagailuak - MIMD konputagailuak - Arazo nagusiak - Kalkulu-abiadura
Sarrera Paralelismoa: “eragiketa” bat baino gehiago “batera, aldi berean” egitea. • datuen tamaina: 4 - 8 - 16 - 32 - 64... bit • aginduen exekuzioa (ILP): segmentazioa, supereskalarrak, VLIW... • datuetan vs programetan
- bektore-prozesadoreak Sarrera Paralelismoa SIMD: Single-Instruction-Multiple-Data - bektore-prozesadoreak - prozesatze-matrizeak (array processors) - GPU MIMD: Multiple-Instruction-Multiple-Data Prozesu/hari asko, erantzuna ahalik eta azkarren emateko (high performance). - multiprozesua, hutsegiteekiko tolerantzia, P kopia (lan-emaria edo throughput-a)
SIMD prozesatze-matrizea Prozesadore sinple asko, memoria gutxi, sarrera/ irteera eragiketetarako aukera. Komunikazio-sare berezia. komunikazio-sarea prozesatze-matrizea P+M+S/I
SIMD prozesatze-matrizea Kontrol-prozesadoreak sinkronoki exekutatuko duten agindua bidaltzen die prozesadore guztiei (BC). Prozesadore bakoitzak, agindua exekutatzen du edo ez du ezer egiten. komunikazio-sarea prozesatze-matrizea P+M+S/I front-end Kontrol-proz.
SIMD prozesatze-matrizea Adibidea (X, Y eta Z bektoreak prozesadoreen artean banatuta daude) for (i=0; i<1000; i++) if (Y[i] != 0) Z[i] = X[i] / Y[i]; else Z[i] = X[i]; 1. pausoa: egiaztatu denak Y[i] != 0 (true / false) 2. pausoa: baldin (true) egin Z[i] = X[i] / Y[i] (besteok, ezer ez) 3. pausoa: baldin (false) egin Z[i] = X[i] (besteok, ezer ez) Arkitektura mota hau egokia da aplikazio jakin batzuetarako; esaterako, irudiak (seinaleak) prozesatzeko.
GPU GP-GPU • erabiltzea kalkulurako, azeleragailu gisa, irudiak (matrizeak) prozesatzeko hardware berezia. • prozesu-unitate (sinple) asko eta egituratuta. • kalkulu independente asko, datu-egitura oso handien gainean. • CUDA arkitektura: memoria hierarkia berezia. ADI memoria-transferentziak (MN-GPU) kalkulu baino denbora gehiago har dezakete. ((la
MIMD: Multiple-Instruction-Multiple-Data MIMD konputagailuak MIMD: Multiple-Instruction-Multiple-Data P prozesu/hari batera exekutatzen dira. Oinarrizko bi eredu: - memoria partekatua - memoria banatua
Memoria partekatua (shared memory) MIMD konputagailuak Memoria partekatua (shared memory) P0 P1 Pp–1 prozesadoreak + CM komunikazio-sarea S/I M0 Mm–1 memoria nagusia
Memoria partekatua (shared memory) MIMD konputagailuak Memoria partekatua (shared memory) - Helbide-espazio bakarra. - Prozesuen arteko komunikazioa aldagai partekatuen bidez. - Komunikazio-sarea: busa (edo urrats anitzeko sare bat). - Izenak: multiprozesadorea, SMP, UMA. - Eskuarki, prozesadore “gutxi”. P0 P1 Pp–1 M0 Mm–1 S/I
Memoria banatua (distributed memory) MIMD konputagailuak Memoria banatua (distributed memory) Pp-1 Mp-1 S/I P0 M0 S/I Konputagailua: Pr + CM + MN + S/I K komunikazio-sarea
Memoria banatua (distributed memory) MIMD konputagailuak Memoria banatua (distributed memory) - Helbide-espazio bat prozesadore bakoitzeko. - Prozesuen arteko komunikazioa mezu-ematearen bidez. - Komunikazio-sare orokorrak: hiperkuboa, maila, torua... - Izenak: multikonputagailua, MPP. - Eskuarki, prozesadore “asko”. Pp-1 Mp-1 S/I P0 M0 K
Beste aukera bat: memoria partekatua baina fisikoki banatua. MIMD konputagailuak Beste aukera bat: memoria partekatua baina fisikoki banatua. - Helbide-espazioa bakarra da, baina erabilera ez da homogeneoa: memoria-hierarkia bat osatu da. - Prozesuen arteko komunikazioa aldagai partekatuen bidez egiten da (logikoki), eta mezu-ematearen bidez gauzatzen da. - Izenak: DSM, NUMA (MPP). Pp-1 P0 S/I S/I Mp-1 K M0 K
Izenak: MIMD konputagailuak - SMP: memoria partekatuko multiprozesadorea, eskuarki prozesadore kopuru txikia, bus batez komunikatuta. - MPP: prozesadore kopuru handiko sistema paraleloa, memoria partekatukoa zein banatukoa. Oro har, makinarik azkarrenak, berariazko komunikazioko zein kalkuluko hardwarea eta softwarea dituzten sistemak. Baina garestiak. Egitura hierarkikoak antola daitezke (adib., nodoak SMP sistemak dira).
Izenak: MIMD konputagailuak - Cluster: helburu orokorreko hardware zein soft-warearekin egindako sistema paraleloa. Kostua/abiadura erlazioa oso ona da. PC ethernet Sinpleena: PC / ethernet (Beowulf). Commodity / Custom Gero eta gehiago, sistema paralelo orokorra.
Izenak: MIMD konputagailuak - Konstelazioa (constellation): cluster bat, non nodo kopurua nodo bakoitzeko prozesadore kopurua baino txikiagoa baita.
Laburpena agindu-jarioak SMP datu-jarioak MPP/NUMA Clusters MN P C memoria partekatua SMP busa 1 N SIMD MIMD SISD agindu-jarioak datu-jarioak MPP/NUMA Clusters memoria banatua P C M sare orokorra Prozesatze-matrizeak Bektore-konputagailuak
Laburpena Helbide-espazioa Memoria SMP - DSM, NUMA MPP partekatua pribatua zentralizatua (busa) banatua (sarea) Memoria SMP - DSM, NUMA MPP
Sistema paraleloetan gainditu behar diren arazo batzuk: Arazoak Sistema paraleloetan gainditu behar diren arazo batzuk: - Nola kudeatzen da sistema osoa? - Nola banatzen da algoritmo bat P prozesutan? Kode guztia paraleloan exekuta al daiteke? - Lan-banaketa orekatua da, edo, adibidez, exekuzio-karga “% 80 - % 20” banatu da? (load balancing)
Sistema paraleloetan gainditu behar diren arazo batzuk: Arazoak Sistema paraleloetan gainditu behar diren arazo batzuk: - Non daude datuak? Nola mantentzen da datuen koherentzia? - Prozesu guztiak independenteak dira? Sinkronizatu egin behar dira? - Prozesadoretik prozesadorera bidali beharko dira datuak? Nola?
Ordaindu behar diren gainkargak Arazoak Ordaindu behar diren gainkargak 1. Komunikazioa Tp = Texe + Tkom prozesadore kopurua Tp Texe Tkom
Ordaindu behar diren gainkargak Arazoak Ordaindu behar diren gainkargak 2. Lan-banaketaren desoreka Adibidez: 6 prozesu independente, antzeko exekuzio-denborak → Ts = 6T ▪ 3 prozesadoreren artean (2 + 2 + 2) Tp = 2T = Ts/3 ▪ 4 prozesadoreren artean (2 + 2 + 1 + 1) Tp = 2T = Ts/3 !
Ordaindu behar diren gainkargak Arazoak Ordaindu behar diren gainkargak 3. Cachearen erabilera Cache-blokeetako datuak (ber)erabili behar dira (ingurutasuna). Adibidez, baldin A1 eta A2 ondoz ondoko memoria-posiziotan badaude, prozesadore berean prozesatzea mereziko du, cacheko asmatze-tasa handitzeko.
Aplikazio motak Arazoak - ale xeheko paralelismoa ataza asko, txikiak komunikazioa: maiz, datu gutxi - ale larriko paralelismoa ataza gutxi, handiak komunikazioa: noizbehinka, datu asko
Azelerazio-faktorea / Eraginkortasuna Helburua: 1 programa bera azkarrago exekutatzea. 2 programa handiagoak denbora berdinean exekutatzea. Azelerazio-faktorea / Eraginkortasuna af = Ts / Tp (onena: P-rekiko linealki haztea) erag = af / P (onena: P-rekiko independentea) Kasurik onena: Tp = Ts / P → af = P eta erag = 1
1 Oro har, zati bat paraleloan eta beste bat seriean: Amdahl 1 Oro har, zati bat paraleloan eta beste bat seriean: Tsp = f Tp + (1-f) Ts Beraz, hau da benetako azelerazio-faktorea (Amdahl-en legea): af = Ts / Tsp = Ts / [f Ts/P + (1-f) Ts] af = P / [f + (1-f) P] → 1 / (1-f) !
Amdahl 1 Amdahl-en legea af = P / (f + (1-f) P) → 1 / (1-f)
Gustafson 2 Maiz, paralelismoa ez da azkarrago exekutatzeko erabiltzen, baizik eta tamaina handiagoko atazak exekutatu ahal izateko. (1-f) Ts f Ts Ts f Ts (1-f) Ts P prozesadore Tp’ = Ts paraleloan f Ts P (1-f) Ts tamaina handiagoa (xP) Ts’ = ((1-f) + f P) Ts seriean af = Ts’ / Tp’ af = (1-f) + f P
Gustafson 2 Gustafson-en legea af = (1-f) + f P
any questions? 2 Gustafson-en legea K. Par. | Gustafson Arkitektura Paraleloak IF - EHU 2 Gustafson-en legea af = (1-f) + f P any questions?