1 / 94

Arkitektura Paraleloak

A RKITEKTURA P ARALELOAK Abiadura Handiko Konputazioa Agustin Arruabarrena agustin.arruabarrena@ehu.es www.sc.ehu.es/arpar K onputagailuen A rkitektura eta T eknologia saila I nformatika F akultatea – E uskal H erriko U nibertsitatea. Arkitektura Paraleloak. IF - EHU. 0 . Sarrera .

myron
Download Presentation

Arkitektura Paraleloak

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ARKITEKTURA PARALELOAK AbiaduraHandikoKonputazioa Agustin Arruabarrena agustin.arruabarrena@ehu.es www.sc.ehu.es/arpar KonputagailuenArkitektura eta Teknologiasaila Informatika Fakultatea – EuskalHerrikoUnibertsitatea Arkitektura Paraleloak IF - EHU

  2. 0.Sarrera. • 1.Bektore-konputagailuak. • 2.Konputagailu paraleloak (oinarrizko kontzeptuak). • 3.Datuen koherentzia (SMP). • 4.Prozesuen sinkronizazioa (SMP). • 5.Memoriaren kontsistentzia. • 6. Komunikazio-sarea. Mezu-ematea. • 7.Datuen koherentzia (DSM). • 8.Begiztenparalelizazioa eta atazen banaketa. • 9.Abiadura handiko konputagailu paraleloak. Programazio paraleloa: OpenMP eta MPI (sarrera).

  3. 0. Sarrera

  4. Konputagailuen eboluzioa azaltzeko, hiru faktore kontuan hartu behar dira: aurrerapenak teknologia elektronikoan. aurrerapenak sistemaren arkitekturaren diseinuan. aurrerapenak sistemaren softwarearen garapenean.

  5. Aurrerapenak teknologia elektronikoan transistore kopurua > 1.000 M erloju-maiztasuna > 1 GHz kommutazio-abiadura  integrazio- eta paketatze-teknologia memoria-edukiera  osagaien/txipen arteko komunikazio-denborak

  6. Aurrerapenak sistemaren arkitekturan RISC arkitekturak memoria-hierarkia unitate funtzional bereziak erregistroak segmentazioa (ILP) desordena (Tomasulo) supereskalarrak - VLIW / espekulazioa - aurreikuspena multithreading nukleo (core) asko txipean kalkulurako gune bereziak: txartel grafikoak

  7. Aurrerapenak sistemaren eta aplikazioen softwarean OpenMP MPI UPC OpenCL / Cuda ... list scheduling loop unrolling software pipelining trace scheduling EPIC …

  8. Prozesadore eskalarren kalkulu-abiadura > 1 Gflop/s 109 koma higikorreko eragiketa segundoko Gogoratu: Mega (M) 106 Giga (G) 109 Tera (T) 1012 Peta (P) 1015 mikro (µ) 10-6 nano (n) 10-9 pico (p) 10-12 femto (f) 10-15 Abiadura hori ez da nahikoa hainbat aplikazio tekniko/zientifikotarako meteorologia, genetika, astrofisika, aeronautika, geofisika, ingeniaritza, materialak, datu-base handiak...

  9. Hennessy – Patterson, 4. arg. % 20 urteko % 52 urteko

  10. Irtenbidea: paralelismoa - Multicore(2-8 prozesadore txip batean) - Prozesadore asko (?) batera elkarlanean P = 10.000 proz. → 10.000 GF/s??  Nola erabili P prozesadore? sare bat / errepikapen hutsa / sistema paraleloa

  11. Datu-jarioak 1asko SIMD array processors bektore-konputagailuak 1 Agindu- jarioak MIMD memoria partekatua memoria pribatua asko Flynn-en sailkapena SISD

  12. 1. Bektore-konputagailuak - Sarrera - Datu-dependentziak - Egiturazko dependentziak - Kalkulu-abiadura - Bektore-kodea

  13. Kode eskalar arrunta Sarrera do i = 0, N-1 C(i) = A(i) + B(i) enddo beg: FLD F1,A(R1) FLD F2,B(R1) FADD F3,F2,F1 FST C(R1),F3 ADDI R1,R1,#8 SUBI R2,R2,#1 BNZ R2,beg TE≈ 7Nziklo

  14. Bektore-kodea LV V1,A(R1) LV V2,B(R1) ADDV V3,V2,V1 SV C(R1),V3 Sarrera do i = 0, N-1 C(i) = A(i) + B(i) enddo Bektoreak: - hasiera-helbidea - luzera - pausoa (stride) 2000 – 2008 – 2016 – 2024 – ... – 2116 hasiera-helb. = 2000 / luzera = 16 / pausoa = 8

  15. Sarrera LV V1,A(R1) BD Ir AM M M M Id AM M M M Id AM M M M Id ... ... AM M M M Id BD Ir AM M M M Id Id ... ... Id

  16. N th Sarrera LV V1,A(R1) LV V2,B(R1) ADDV V3,V1,V2 SV C(R1),V3 BD Ir AMMMMId ... ... Id BD IrAMMMMId ... ... Id BD ....IrAAId ......Id BDIrAM....Ir MMMId......Id N = 128, th = 14 TE = 896 ziklo TB = 142 ziklo TB≈ th + Nziklo TE ≈ 7N ziklo

  17. Sarrera LV V1,A(R1) LV V2,B(R1) ADDV V3,V1,V2 SV C(R1),V3 BD Ir AMMMMId ... ... Id BD IrAMMMMId ... ... Id BD ....IrAAId ......Id BDIrAM....Ir MMMId......Id Arazoak Memoria: segmentatuta / bus kop. / moduluak Unitate funtzionalak: segmentatuta / asko Bektore-erreg.: tamaina / kopurua / atzipena

  18. Sarrera Arazoak Programak: dena bektore-eragiketak? beti bektoriza daitezke? Jatorrizko kodea desordenatu eginbehar da! do i = 0, N-1 A(i) = A(i) + 1 enddo eskalarki: L0 +0 S0 / L1 +1 S1 / ... / LN-1 +N-1 SN-1 bektorialki: L0 L1 ... LN-1 / +0 +1 ... +N-1 / S0 S1 ... SN-1

  19. Unitate funtzion. Erregistroak Erregistroak Prozesadore eskalarra (osoa) Memoria (erag.) Bektore-prozesadoreko kontrola Helbide- unitatea (datuak) Sarrera Bektore-arkitekturaren eskema logikoa (tomasulo)

  20. Sarrera Makina-lengoaia LV Vi,A(Rj) Vi:= M(A+Rj) SV A(Rj),Vi M(A+Rj):= Vi OPV Vi,Vj,Vk Vi:= Vj OP Vk OPVS Vi,Vj,Fk Vi:= Vj OP Fk OPVI Vi,Vj,#k Vi:= Vj OP #k VL→ bektoreen luzera VS→ bektoreen pausoa MOVI VL,#64 MOVI VS,#8 LV V1,A(R1)

  21. Datu-dependentziak Bektore-agindu batek aurreko agindu baten emaitza behar du. LV V1,A(R1) ADDVI V2,V1,#1 SV A(R1),V2 do i = 0, N-1 A(i) = A(i) + 1 enddo - itxaron bektore osoa erregistroan kargatu arte, eta gero irakurri. - egin Id → Irzirkuitulaburra, eta irakurri bektore-osagaiak ahal bezain laster: KATEAKETA (chaining)

  22. LV ADDVI N SV N N Datu-dependentziak Kateaketa egin gabe LV V1,A(R1) ADDVI V2,V1,#1 SV A(R1),V2 BD Ir AM M M M Id ... Id BD. . . . . ... . Ir A A Id ... Id BDIrAM.. ... .. ... ... .IrMMMId... TB = 13 + 3N

  23. LV V1,A(R1) ADDVI V2,V1,#1 SV A(R1),V2 BD Ir AM M M M Id ... ... ... ...Id LV ADDVI SV N Datu-dependentziak Kateaketa eginez BD . . . . IrA A Id ... ... ... Id BDIrAM.. . . IrM M M Id ... ... TB = 13 + N

  24. BD Ir AM M M M Id ... ... ... ... Id BDIrAMM M M Id ... ... ... ... Id Datu-dependentziak Kateaketa bi agindurekin: C = A + B LV V1,A(R1) LV V2,B(R1) ADDV V3,V2,V1 SV C(R1),V3 BD . . . . IrA A Id ... ... ... Id BDIrAM. . . . Ir M M M Id ... ... Oro har, eragigai bat unitate funtzional batetik eta bestea erregistro-multzotik (idazten ari da, edo idatzita dago).

  25. Datu-dependentziak Exekuzio-taulak (A=A+1) kateaketaez Ex.has. UFlat. 1.dat N.dat LV V1,A(R1) ADDVI V2,V1,#1 SV A(R1),V2 3 3 6+1 6+N 6+N+1 2 9+N+1 9+2N 9+2N+1 3 13+2N+1 13+3N kateaketabai Ex.has. UFlat. 1.dat N.dat LV V1,A(R1) ADDVI V2,V1,#1 SV A(R1),V2 3 3 6+1 6+N [7] 2 9+1 9+N [10] 3 13+1 13+N

  26. Ex.has. UFlat. 1.dat N.dat LV V1,A(R1) LV V2,B(R1) ADDV V3,V1,V2 SV C(R1),V3 kateaketa ez Ex.has. UFlat. 1.dat N.dat LV V1,A(R1) LV V2,B(R1) ADDV V3,V1,V2 SV C(R1),V3 kateaketa bai Datu-dependentziak Exekuzio-taulak (C=A+B) 3 3 6+1 6+N 4 3 7+1 7+N 7+N+1 2 10+N+1 10+2N 10+2N+1 3 14+2N+1 14+3N 3 3 6+1 6+N 4 3 7+1 7+N [8] 2 10+1 10+N [11] 3 14+1 14+N

  27. Egiturazko dependentziak Baliabideaklibre al daude? -unitate funtzionalak adi: N ziklo okupatuko dira. -bektore-erregistroak adi: irakurketa/idazketarako bus nahikoak. -memoriako busak -memoria-moduluak Okupatuta badaude, ziklo asko (N) galduko dira.

  28. LV V1,A(R1) ADDVI V2,V1,#1 SV A(R1),V2 BD Ir AM M M M Id ... ... ... ... Id BD . . . . IrA A Id ... ... ... Id LV ADDVI SV Egiturazko dependentziak Memoriako busak Zenbat bus daude memoriarekin lan egiteko? bus bakar bat BDIrAM.. . . ? ...IrM M MId ... busa okupatuta TB≈2N

  29. Egiturazko dependentziak Memoria-bus bakarra (A = A + 1) kateaketa bai Ex.has. UFlat. 1.dat N.dat LV V1,A(R1) ADDVI V2,V1,#1 SV A(R1),V2 3 3 6+1 6+N [7] 2 9+1 9+N [6+N] 3 9+N+1 9+2N

  30. 3 3 6+1 6+N 6+N 3 9+N+1 9+2N 2 12+N+1 12+2N 3 12+2N+1 12+3N LV LV TB≈3N ADDV SV Egiturazko dependentziak Memoria-bus bakarra (C = A + B) Ex.has. UFlat. 1.dat N.dat LV V1,A(R1) LV V2,B(R1) ADDV V3,V2,V1 SV C(R1),V3 kateaketa bai [10+N] [9+2N]

  31. Ex.has. UFlat. 1.dat N.dat LV V1,A(R1) LV V2,B(R1) ADDV V3,V2,V1 SV C(R1),V3 3 3 6+1 6+N 4 3 7+1 7+N kateaketa bai [8] 2 10+1 10+N [6+N] 3 9+N+1 9+2N LV LV TB≈2 N ADDV SV Egiturazko dependentziak Bi memoria-bus (C = A + B)

  32. Egiturazko dependentziak Memoria-moduluak Libre al daude erabili behar diren memoria-moduluak? Okupatuta badaude, LV/SV aginduak zain geratuko dira. Arazoak: - memoria-agindu bat bere buruarekin. - memoria-agindu bat beste batzuekin.

  33. Egiturazko dependentziak Memoria-eragiketa bakarra m0 m1 m2 m3 tm = 3 ziklo mk = 4 s = 1 M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M Zenbat modulu erabiltzen dira? mk / ZKH(mk,s) Beraz, ez dago arazorik baldin mk / ZKH(mk,s) ≥ tm

  34. m0 m1 m2 m3 m0 m1 m2 m3 A00 A01 A02 A03 - A10 A11 A12 A13 -A20 A21 A22 A23 -A30 A31 A32 A33 - A00 A01 A02 A03 A10 A11 A12 A13 A20 A21 A22 A23 A30 A31 A32 A33 Egiturazko dependentziak Padding s = 1 arazorik ez s = 1 arazorik ez Errenkadak: s = 4 arazo asko s = 5 arazorik ez Zutabeak: s = 5 arazorik ez s = 6 arazoak Diagonal n.: s = 3 arazorik ez s = 4 arazoak Diagonal tx.:

  35. - - - M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M Egiturazko dependentziak Memoria-eragiketa bat baino gehiago Ex.has. UFlat. 1.dat N.dat LV V1,A(R1) ADDVI V2,V1,#1 SV A(R1),V2 3 3 6+1 6+N [7] 2 9+1 9+N [10] 4 5 6 7 8 910 11 12 13 14 15 16 17 18 19 m0 m1 m2 m3 m4 m5 m6 m7 M M M M M M M M M M M

  36. Egiturazko dependentziak Zenbat ziklo itxaron behar da, erabili behar den memoria-modulua libre izan arte (s=1)? Erabili ezin diren moduluen zerrenda osatu behar da: 1.Kalkulatu zein modulutan hasiko den memoriako aurreko agindua (j): (hk – hj) + hasiera-moduluaj 2.Gehitu aurretik eta atzetik tm-1 modulu. 3.k aginduak erabili behar duen modulua zerrenda horretan badago, itxaron zerrendako posizioko adinako ziklo.

  37. Egiturazko dependentziak Ex.has. Mod.ok. Itx. UFlat. 1.dat N.dat LV V1,A(R1) ADDVI V2,V1,#1 SV A(R1),V2 3 3 6+1 6+N [7] 2 9+1 9+N 3 17+1 17+N [10] 4 5, 6 - 7 - 0, 1

  38. Egiturazko dependentziak Erregistroen tamaina (Lmax) - zer egin bektoreak luzeagoak badira? strip mining do i = 0, N-1 A(i) = A(i) + 1 enddo MOVI VS,#1 MOVI R1,#N segi: MOV VL,R1 LV V1,A(R2) ADDVI V2,V1,#1 SV A(R2),V2 ADDI R2,R2,#Lmax SUBI R1,R1,#Lmax BGTZ R1,segi TB =N/Lmax(th + tbeg) + tb N TB = 30 + 3N; N = 500; Lmax = 64; tbeg = 10 → 8×(30+10) + 1.500 = 1.820 (+ % 19)

  39. Kalkulu-abiadura Hiru parametro erabili ohi dira “abiadura” adierazteko: - Exekuzio-denbora(ziklotan zein segundotan). - Kalkulu-abiadura: exekutatu diren koma higikorreko eragiketen kopurua, segundoko. - Azelerazio-faktorea(speed-up): zenbat bider azkarragoa den bektore-exekuzioa exekuzio eskalarra baino.

  40. 300 TB 250 200 malda = tb 150 100 TB = 30 + 2N 50 th N 0 0 25 50 75 100 125 150 Kalkulu-abiadura Exekuzio-denbora (N-ren arabera) esk.: TE = te N bekt.: TB = th + tb N ADI: zikloak! segundotan emateko, erloju-periodoaz (T) biderkatu behar da.

  41. RB R∞ R∞/2 N N1/2 Kalkulu-abiadura Kalkulu-abiadura (N-ren arabera) [ ] × EragKop ×F MF/s RB = N / TB = N / (th + tbN) R∞ = [1 / tb]× EK × F N1/2 → R∞ / 2 N1/2= th / tb

  42. Kalkulu-abiadura Azelerazio-faktorea (speed-up) KB = TE / TB = te N / (th + tbN) K∞ = te / tb Bektore-luzera minimoa TE = TB te NB = th + tb NB → NB = N1/2 / (K∞– 1)

  43. Kalkulu-abiadura Kode eskalarraren eragina: Amdahl-en legea. Kode zati bat, f, bektorialki, eta bestea, 1–f, eskalarki. TBE = f TB + (1-f) TE KBE = TE / TBE = TE / (f TB + (1–f) TE) = KB / (KB – f (KB–1))

  44. 16 14 (KB = 2, 4, 8, 16) 12 10 azelerazio-faktorea (speed-up) 8 6 KB = ∞ 4 2 0 0 0.2 0.4 0.6 0.8 1 f (bektorizazio-faktorea) Kalkulu-abiadura Amdahl-en legea KBE = KB / (KB – f (KB–1))

  45. Kalkulu-abiadura Amdahl-en legea Kalkulu-abiadura: RBE = N / TBE = N / (f TB + (1-f) TE) = = N / (f (th + tb N) + (1-f) te N) = = N / (f (th + tb N) + (1-f) K∞ tb N) [× EK × F]

  46. 16 14 tb = 5 ns te = 66,6 ns 12 10 azelerazio-faktorea 8 6 tb = 10 ns te= 33,3 ns 4 2 0 0 0.2 0.4 0.6 0.8 1 f Kalkulu-abiadura Amdahl-en legearen eragina CRAY X-MP tb = 10 ns te = 66,6ns → K∞ = 6,6

  47. 1. Bektore-konputagailuak - Sarrera - Datu-dependentziak - Egiturazko dependentziak - Kalkulu-abiadura - Bektore-kodea - datu-dependentziak - bektorizazioa - optimizazioak

  48. Datu-dependentziak •  Begizta bat bektorialki exekutatu ahal izateko, aginduen jatorrizko ordena aldatu behar da. eskalarki: L0 +0 S0 / L1 +1 S1 / ... / LN-1 +N-1 SN-1 bektorialki: L0L1 ... LN-1 / +0 +1 ... +N-1 / S0 S1 ... SN-1  Adi: ordena-aldaketak egin daitezke, baina aginduen arteko datu-dependentziak errespetatu egin behar dira, beti!

  49. dependentzia RAW i: A = ... j: = A antidependentzia WAR i: = A ... j: A = irteera-dependentzia WAW i: A = ... j: A = ij ij i j Datu-dependentziak benetako dependentziak izen-dependentziak Gogoratu: dependentzia batek eragiketen arteko ordena-erlazio jakin bat ezartzen du.

  50. Datu-dependentziak •  Begiztekin lan egin behar denez, dependentziak edozein iteraziotako aginduen artean eman daitezke. • i1 eta i2 iterazioko aginduen arteko dependentzia bat badago, i2 – i1 distantziakoa dela esaten da.  Dependentziak bi graforen bidez adierazi ohi dira: dependentzia-grafoa eta iterazio-espazioa izenekoak.

More Related