1 / 33

Arkitektura Paraleloak

Arkitektura Paraleloak. 4. Prozesuen Sinkronizazioa SMP Konputagailuetan. - Sarrera - Elkarrekiko esklusioa - Gertaeren bidezko sinkronizazioa - Sinkronizazio-hesiak. Arkitektura Paraleloak. IF - EHU. Pi. Pj. ... FLD F4, A(R0). ... FST A(R0) ,F2. ?. Sarrera.

hedda
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 4.Prozesuen Sinkronizazioa SMP Konputagailuetan - Sarrera - Elkarrekikoesklusioa - Gertaerenbidezkosinkronizazioa - Sinkronizazio-hesiak Arkitektura Paraleloak IF - EHU

  2. Pi Pj ... FLD F4,A(R0) ... ... FST A(R0),F2 ... ? Sarrera • SMP konputagailuetako memoria partekatua da, eta prozesuak aldagai partekatuen bidez komunikatzen dira. Aplikazio gehienetan, aldagai horien erabilera sinkronizatu egin behar da, programaren esanahia zehatza izan dadin. Adibidez:

  3. Pi Pj ... LD R1,KONT ADDI R1,R1,#1 ST KONT,R1 ... ... LD R1,KONT ADDI R1,R1,#1 ST KONT,R1 ... Sarrera • Eta zer gertatuko da kasu honetan (KONT = 0)? LD..ADDI.......ST KONT = 1 !! LD....ADDI.....ST

  4. Sarrera • Memoriako atzipenatomikoak (interferentziarik gabekoak) behar ditugu prozesuak sinkronizatu ahal izateko. Bi motako beharrak: - sekzio kritikoak elkarrekiko esklusioan exekutatu behar diren kode zatiak (prozesu bakar bat aldi berean). - gertaeren bidezko sinkronizazioa puntutik puntura→ gertaerak (ekoizle/kontsumitzaile) globala → hesiak

  5. Sarrera • Prozesuak zain geratuko dira zerbait gertatu arte; hau da, denbora galdu egingo da. Denbora-tarte bat itxaroteko: -- itxarote aktiboa -- blokeoa Sinkronizazio-mekanismoen ezaugarriak: - latentzia txikia - trafiko mugatua - hedagarritasun ona - memoriako kostu txikia - zuzentasuna

  6. Elkarrekiko esklusioa • Ez da prozesadore bat baino gehiago onartzen, aldi berean, kode zati jakin bat (sekzio kritikoa) exekutatzen. Sekzio kritikoaren exekuzioa kontrolatzeko: - sarrailak: 0, irekita - 1, itxita -lock - unlockfuntzioak: lock(SAR) aztertu sarraila; irekita badago, itxi eta igaro sekzio kritikoa exekutatzera; bestela, zain geratu sarraila ireki arte. unlock(SAR) ireki sarraila.

  7. lock(SAR); unlock(SAR); sekzio kritikoa Elkarrekiko esklusioa lock: LD R1,SAR BNZ R1,lock ADDI R2,R0,#1 ST SAR,R2 RET ... kont ++ ; ... • RMW motako aginduatomikoak behar ditugu. ? unlock: ST SAR,R0 RET

  8. T&S - Swap 1.1Test&Set ▪T&S R1,SAR R1:=MEM[SAR]; MEM[SAR]:=1; lock: T&S R1,SAR BNZ R1,lock RET unlock: ST SAR,R0 RET

  9. T&S - Swap 1.2Swap ▪SWAP R1,SAR R1 <--> MEM[SAR]; lock: ADDI R1,R0,#1 l1: SWAP R1,SAR BNZ R1,l1 RET unlock: ST SAR,R0 RET

  10. T&S - Swap Trafikoa SMP sistemetan, biziki garrantzitsua da ahalik eta trafiko gutxien sortzea. ADI: sarraila –SAR– aldagai partekatua da. T&S aginduak beti idazten du sarrailan, itxita dagoenean ere; beraz, sarraila duen datu-blokea baliogabetu egin behar da, behin eta berriz. Ondorioz, datu-trafiko asko sortuko da prozesuak sekzio kritikoan sartzeko zain dauden bitartean, sarrailaren datu-blokea transmititzen.

  11. SK x x [TSBRQ x [TSBRQ.......... xBRQ....... TS/INV] x [TSBRQ................... TS/INV] xBRQ......... [TSBRQ............................ x TS/INV] xBRQ... T&S – Swap: trafikoa P0 SKan dago BRQ = blokea eskatu / x = baliogabetuta / bus-kontrola = FIFO P0 P1? P2? P3? P4? S=0,INV TS/INV] [TS.. [TS.. TS/INV] [TS.. [TS... behin eta berriz!

  12. T&S with backoff  Hobekuntzak trafikoa murrizteko 1Test&Set with backoff lock: T&S R1,SAR BNZ R1,zain RET zain: CALL ITXOIN [egokitu itx-denb.] JMP lock Sarraila itxita badago, ez saiatu behin eta berriz sartzen: utzi denbora tarte bat berriro ere saiatu baino lehen. Itxarote-denbora esponentziala izatea egokia ohi da: t0 = k; t1 = k × c; t2 = k × c2; ...

  13. Test-and-Test&Set  Hobekuntzak trafikoa murrizteko 2Test-and-Test&Setprozedura Banatu lock eragiketa bi zatitan: a. irakurri sarraila irekita aurkitu arte (LD); b. eta, orduan, saiatu sarraila modu atomikoan ixten (T&S). lock: LD R1,SAR BNZ R1,lock T&S R1,SAR BNZ R1,lock RET

  14. SK x x x x x LD[TS....... BRQ LD...... TS/INV][LD.. x BRQ..... LD[TS....... BRQ... x BRQ x BRQ........ TS/INV][LD.. x BRQ. LD... BRQ....... LD[TS... TS/INV]LD......... x BRQ............... BRQ........... LD[TS. Test-and-T&S: trafikoa P0 SKan dago BRQ = blokea eskatu / x = baliogabetuta / bus-kontrola = FIFO P0 P1LD P2LD P3LD P4LD S=0,INV • Datu-trafikoa (datu-blokeak) • prozesubatSKrasartzeko → P + (P-1) + (P-2) • SKtikateratzeko → 1 • guztira → 3P - 2 P proz. → P(3P-1)/2 TS/INV]

  15. LL – SC 2.1Load Locked / Store Conditional - eragiketa atomikoa bi zatitan banatu - hardwareko adierazle bat atomikotasuna bermatzeko ▪LL R1,SAR R1:=MEM[SAR]; SinL[helb]:=SAR; SinL[adi]:=1; ▪SC SAR,R1 baldin (SinL[helb,adi]=SAR,1) MEM[SAR]:=R1; SinL[adi]:=0; proz. guztietan (INV); R1:=1; (idatzi da) bestela R1:=0; (ez da idatzi)

  16. behin bakarrik sortzen da trafikoa: sekzio kritikora sartzean; gainerako kasuetan, ez da idazten! LL – SC 2.1Load Locked / Store Conditional lock: ADDI R2,R0,#1 l1: LL R1,SAR BNZ R1,l1 ... SC SAR,R2 BZ R2,lock RET unlock: ST SAR,R0 RET

  17. SK x x x x BRQ LL(1)[SC.... SC /INV] SC]LL............ LL(1)[SC...... (0)x BRQ BRQ..... SC]LL....... BRQ........ LL(1)[SC.. (0)x BRQ.... SC]LL..... LL(1)[SC. (0)x BRQ......... BRQ............ LL – SC: trafikoa P0 SKan dago BRQ = blokea eskatu / x = baliogabetuta / bus-kontrola = FIFO P0 P1LL P2LL P3LL P4LL S=0,INV • Datu-trafikoa (datu-blokeak) • prozesubatSKrasartzeko → P + (P-1) • SKtikateratzeko → 0 • guztira → 2P - 1 P proz. → P2

  18. C&S 2.2Compare&Swap ▪C&S R1,R2,SAR baldin(R1=MEM[SAR]) MEM[SAR]<-->R2; lock: ADDI R2,R0,#1 l1: C&S R0,R2,SAR BNZ R2,l1 RET

  19. Fetch&OP 3Fetch&Op RMW motako agindu-familia bat, eragiketa jakin sinple batzuk atomikoki egiteko; ohikoenak: ▪Fetch&Incr R1,ALD (edo Fetch&Dcr) R1 := MEM[ALD]; MEM[ALD] := MEM[ALD] + 1; ▪Fetch&Add R1,R2,ALD R1 := MEM[ALD]; MEM[ALD] := MEM[ALD] + R2;

  20. Txartelak  Hobekuntzak trafikoa murrizteko 1Txartelak (tickets) Ideia: sekzio kritikorako sarrerak ordenatzea. Sarrailaren ordez, bi sinkronizazio-aldagai: txanda (nori dagokio SKra sartzea) eta txartela (zure txanda-zenbakia). Aurrena, txartela eskuratu, eta gero zain geratu txanda heldu arte. > Txartela lortzeko: tx: LL R1,TXARTELA ADDI R2,R1,#1 SC TXARTELA,R2 BZ R2,tx F&I R1,TXARTELA

  21. Txartelak  Hobekuntzak trafikoa murrizteko 1Txartelak: lock eta unlock funtzioak lock: F&I R1,TXARTELA itx: LD R2,TXANDA SUB R3,R1,R2 BNZ R3,itx RET unlock: LD R1,TXANDA ADDI R1,R1,#1 ST TXANDA,R1 RET Trafikoa: - txartela eskuratzen denean - txanda aldagaia eguneratzen denean adi: balizko gainezkatzeak!

  22. 3 prozesu zain daude 0 i i+1 0 1 1 0 1 1 1 1 1 SB INDIZEA: itxaroteko hurrengo posizioa Sarraila-bektoreak  Hobekuntzak trafikoa murrizteko 2Sarraila-bektoreak Ez erabili TXANDA aldagai partekatua, baizik eta sarraila pribatu bat prozesu bakoitzeko. Prozesu bakoitzak hurrengoari abisatzen dio. 1 SKan dagoen proz.

  23. Sarraila-bektoreak  Hobekuntzak trafikoa murrizteko 2Sarraila-bektoreak lock: F&IR1,INDIZEA itx: LD R2,SB(R1) BNZ R2,itx ST NIRE_IND,R1 RET unlock: ADDI R2,R0,#1 LD R1,NIRE_IND nirea itxi: ST SB(R1),R2 ADDI R1,R1,#1 hurr. ireki:ST SB(R1),R0 RET Trafikoa: behin bakarrik, sarraila-bektoreko osagaiak eguneratzean (adi! partekatze faltsua eta balizko gainezkatzeak).

  24. P0 P1LD.. P2LD.... P3LD.... P4LD.... SK SK x x x x LD x BRQ LD BRQ LD....... BRQ..... LD... BRQ......... LD... BRQ............ Trafikoa P0 SKan dago BRQ = blokea eskatu / x = baliogabetuta / bus-kontrola = FIFO Txartela/Txanda Sarraila-bektoreak P0 P1LD P2LD P3LD P4LD SB(i+1)=0,INV TX++,INV • Datu-trafikoa (datu-blokeak) • Txartelak → 1 + P → P(P+3)/2 • Sarraila-bektoreak → 1 + 1 + 1 → 3P

  25. Laburpena  Sekzio kritikora sartzeko trafikoa (8 prozesadoreko SMP bat; kasurik txarrena: P = 7 prozesadore sekzio kritikora sartzeko zain daude.) T&S (mugatugabea) Test-and-Test&Set P(3P-1)/2 70 bloke LL - SC P2 49 bloke Txartelak P(P+3)/2 35 bloke Sarraila-bektoreak 3P 21 bloke

  26. while(adi==0){}; adi = 1; Gertaerak • 1Puntutik punturako sinkronizazioa gertaeren bidez • Ohiko sinkronizazioa ekoizlearen eta kontsumitzaile-aren artean, adierazle edo flag baten bidez. P1(ekoizlea)P2 (kontsumitzailea) X = F1(Z); Y = F2(X); post(adi); wait(adi); post(adi,i); wait(adi,i);

  27. H H H H H H H H Hesiak • 2Hesien bidezko sinkronizazioa Sinkronizazio globala: prozesu multzo bat sinkronizatzen da exekuzioarekin jarraitu baino lehen. Hesia antolatzeko datu-egitura: struct hesi_egitura { int sar ; SKaren sarraila int kont ; zenbat heldu diren int egoera ; 0 itxita - 1 irekita }

  28. Hesiak Aurrenak hesia itxi behar du; azkenak, ireki. • Hesi sinple bat(H, hesi_egitura motako struct bat) HESIA (H,P) { LOCK (H.sar); if (H.kont == 0) H.egoera = 0; H.kont++; nire_kont = H.kont; UNLOCK (H.sar); if (nire_kont==P) { H.kont= 0; H.egoera = 1; } else while (H.egoera== 0) {}; }

  29. aldagai pribatua Hesiak • Hesi berrerabilgarria. “Hesia irekita” adieratzen duen balioa ez da beti bera: bi balioren artean txandakatzen da. HESIA (H,P) { irt_bal = !(irt_bal); LOCK (H.sar); H.kont++; nire_kont = H.kont; UNLOCK (H.sar); if (nire_kont==P) { H.kont = 0; H.egoera = irt_bal; } else while (H.egoera != irt_bal); }

  30. Hesiak • Eraginkortasuna: datu-trafikoa Partekatze faltsua saihesteko, demagun sar, kont eta egoera aldagaiak datu-bloke desberdinetan daudela. P prozesuko hesi batean, honako datu-bloke hauek eskatuko ditu Pi prozesadoreak: - sar aldagai duena, lock funtzioa exekutatzean. - kont aldagaiarena, gehitu ahal izateko. - egoera aldagaiarena, bitan, itxarote-begiztaren hasieran eta bukaeran. >> guztira, 4P (hesian sartzeko lehiarik gabe)

  31. Laburpena > Prozesu paraleloak sinkronizatu egin behar dira (maiz), dela sekzio kritikoak antolatzeko, dela prozesu multzo baten exekuzioa “bateratzeko”. > Sinkronizazioak ahalik eta trafiko gutxien sortu behar du, eta ahalik eta azkarren bete behar da. > Agindu bereziak, atomikoak, behar dira sekzio kritikoak gauzatzeko: T&S (sinpleena) edo LL-SC bikotea. Hardwarearen laguntza behar da atomikotasuna bermatzeko.

  32. Laburpena >T&S soil bat (edo, hobeto, LL/SC bikotea) nahikoa da sekzio kritiko bat kudeatzeko, baldin eta lehiarik ez badago. Bestela, trafikoa murriztuko duen estrategiaren bat erabili behar da: test-and-t&s, txartelak, sarraila-bektoreak... > Ekoizlea eta kontsumitzailea sinkronizatzeko, nahikoa da adierazle bat erabiltzea (aldagai partekatua). >Sinkronizazio-hesiak erabili behar dira aplikazio paraleloen prozesuak exekuzioaren puntu jakin batera heldu direla ziurtatzeko. Aukeran, behin eta berriz erabil daitezkeen hesiak dira egokienak.

  33. Arkitektura Paraleloak IF - EHU P. Sink. | Laburpena >T&S soil bat (edo, hobeto, LL/SC bikotea) nahikoa da sekzio kritiko bat kudeatzeko, baldin eta lehiarik ez badago. Bestela, trafikoa murriztuko duen estrategiaren bat erabili behar da: test-and-t&s, txartelak, sarraila-bektoreak... > Ekoizlea eta kontsumitzailea sinkronizatzeko, nahikoa da adierazle bat erabiltzea (aldagai partekatua). >Sinkronizazio-hesiak erabili behar dira aplikazio paraleloen prozesuak exekuzioaren puntu jakin batera heldu direla ziurtatzeko. Aukeran, behin eta berriz erabil daitezkeen hesiak dira egokienak. ez ahaztu azterketa, urriaren 27an

More Related