4. Prozesuen Sinkronizazioa SMP Konputagailuetan

Slides:



Advertisements
Presentaciones similares
UPV-EHU / ATC Arquitecturas Paralelas Sincronización de procesos en sistemas SMP - Introducción - Exclusión mutua - Sincronización mediante eventos.
Advertisements

HBSP/PREE Bidelaguna ZUZENDARIEN MINTEGIA APIRILAREN 14AN.
ZATIKIAK: SARRERA DBH 1. Esanahia eta adierazpena Zenbakitzailea: Zenbat zati hartu ditugun adierazten du. Izendatzailea: Osoa zenbat zatitan banatu dugun.
Gogamena edo Pentsamendua
ARKITEKTURA PARALELOAK 05-06
7. GAIA: LOTURA KOBALENTEA. MOLEKULEN ERAKETA
Jon Nieto Ortiz de Urbina 6.D Euskaraz eginda.
Bilbotik Donostiara A8 autopistatik joanez, goiz esnatu behar duzu, fakultatera garaiz helduko bazara. EHULKUren aholkua (...etorriko bada) Euskara Zerbitzua.
ATOMOAREN EGITURA TXINGUDI BHI.
ATOMOAREN EGITURA.
Golgi aparatua.
DISOLUZIOAK.
KLONAZIOA.
Datuen azterketarako oinarrizko funtzioak
HIGIDURA.
Nola eman behar genuke euskaraz lentes progresivas / verres progressifs, erabileremu teknikoan, optikan esaterako? EHULKUren aholkua (Leiar progresiboak)
CERN: PARTIKULEN FISIKA IKERTZEKO ZENTROA
ZER DA KOKLEAR INPLANTEA?
PUNTUAZIOA.
Aurrekontua: zer pentsatua ematen duen zenbaki labirintua
IKASKUNTZA KOOPERATIBOA
VI. mendea K. a.   Mileton pentsatzeko era berri bat sortu zen. Gauzen azalpenak emateko orduan mitoaren ordez arrazoia erabiltzen hasi zen. LOGOSAK.
Lehen ordenako ekuazio diferentzialak
Nondik dator Eguzkiaren Energia?
Zatiki baliokideak.
Paula, Maider eta Maialen
EGUZKI ENERGIA FOTOVOLTAIKA
SOS DEIAK 112 GETXOKO UDALA MERKANTZIA ARRISKUTSUAK
Larrialdia gertatuz gero, deitu telefono-zenbaki honetara
HIGIDURA ZUZEN UNIFORMEA (HZU)
Alemaniako Bonn hiriko fiskaltzak DNA proba egingo dio Jan Ullrich txirrindulariari. Dopatu delako frogarik ba ote dagoen ikertu nahi dute horrela.
Kalkulu egokiak eginez, erraz zehaztu daiteke partikularen posizioa.
Immanuel Kant: Metafisikari dagokion problema
ENDOZITOSIA ETA EXOZITOSIA
(Hartuko dugu kafe bat?)
10:00etatik 12:00etara eta 14:00etatik 17:30era.
LAUKIZUZENAK ETA KARRATUAK
DESKRIPZIOA.
8. Begizten Paralelizazioa eta Atazen Banaketa
Leire Zallo eta Edurne Zallo.
HIGIDURA ONDULATORIOA
Integrazio-metodoak koadraturen bidez:
Abiadura handiko konputagailuak (top500 zerrenda).
Abiadura Handiko Konputazioa
Beritzegune Nagusia / Arloak
Egilea: Gorka Arrien Arruti Taldea: BATX 2-D
Gaztelaniazko diferente izenondoa ez da beti desberdintasuna adierazteko erabiltzen (eta distinto, diverso sinonimoak ere ez). EHULKUren aholkua (Desberdin.
KLONAZIOA.
Planoaren gaineko galderak
Euskara zerbitzuak errebisatutako testua da
Higidura, Ibilbidea eta Desplazamendua
Hezkuntza Premia Berezia - H.P.B.
balioetsi, balioztatu…
ENERGIA NUKLEARRA EGILEA: MARKEL URANGA.
2. Konputagailu Paraleloak
Ahoko zitostatikoak: zer jakin beharko genuke
Zer egin behar da gazte mantentzeko?
ZELULA AMAK.
2004 EKAINA G-3 EREMU MAGNETIKOA
-(e)NEAN perpausen erabilera desegoki batzuk zuzentzen
Zein desberdintasun dago psikiatriaren eta psikologiaren artean?
{sin(klx), cos(klx)} oinarria: Fourier-en serieak
Rn–> Rn funtzioen zeroen kalkulua:
URAK KUTSATUTA DAUDE!!! Garbi ibili eta ez bota zikinik!
7. Datuen Koherentzia DSM Konputagailuetan
Abantailak Worpressek dituen abantailak asko dira. Guk zenbait aukeratu ditugu zuekin partekatzeko. Lehenik eta behin, wordpressek oso kudeaketa erreza.
KALKULU NUMERIKOA: Funtsezko arazoa:
FILOSOFIAren HISTORIA
Bolumena ala edukiera?.
Zer da epaiketako bitartekotza?
Transcripción de la presentación:

4. Prozesuen Sinkronizazioa SMP Konputagailuetan Arkitektura Paraleloak IF - EHU 4. Prozesuen Sinkronizazioa SMP Konputagailuetan - Sarrera - Elkarrekiko esklusioa - Gertaeren bidezko sinkronizazioa - Sinkronizazio-hesiak

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: ... FST A(R0),F2 FLD F4,A(R0) Pi Pj ?

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

Sarrera  Memoriako atzipen atomikoak (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

 Sinkronizazio-mekanismoen ezaugarriak: 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

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 - unlock funtzioak: lock(SAR) aztertu sarraila; irekita badago, itxi eta igaro sekzio kritikoa exekutatzera; bestela, zain geratu sarraila ireki arte. unlock(SAR) ireki sarraila.

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

T&S - Swap 1.1 Test&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

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

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.

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

 Hobekuntzak trafikoa murrizteko T&S with backoff  Hobekuntzak trafikoa murrizteko 1 Test&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; ...

 Hobekuntzak trafikoa murrizteko Test-and-Test&Set  Hobekuntzak trafikoa murrizteko 2 Test-and-Test&Set prozedura 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

Test-and-T&S: trafikoa P0 SKan dago BRQ = blokea eskatu / x = baliogabetuta / bus-kontrola = FIFO P0 P1 LD P2 LD P3 LD P4 LD S=0,INV x SK x TS/INV][LD.. BRQ BRQ........... BRQ....... BRQ... LD[TS....... TS/INV] x BRQ x BRQ........ x BRQ............... LD[TS....... x BRQ..... LD...... LD[TS... TS/INV][LD.. x BRQ. LD... LD[TS. TS/INV] LD......... Datu-trafikoa (datu-blokeak) prozesu bat SKra sartzeko → P + (P-1) + (P-2) SKtik ateratzeko → 1 guztira → 3P - 2 P proz. → P(3P-1)/2

LL – SC 2.1 Load Locked / Store Conditional ▪ LL R1,SAR ▪ SC SAR,R1 - 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)

LL – SC 2.1 Load 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 behin bakarrik sortzen da trafikoa: sekzio kritikora sartzean; gainerako kasuetan, ez da idazten!

LL – SC: trafikoa SK P0 P1 LL P2 LL P3 LL P4 LL P0 SKan dago BRQ = blokea eskatu / x = baliogabetuta / bus-kontrola = FIFO P0 P1 LL P2 LL P3 LL P4 LL S=0,INV x SK SC /INV] BRQ BRQ............ BRQ........ BRQ..... LL(1)[SC.... (0)x BRQ (0)x BRQ.... (0)x BRQ......... LL(1)[SC...... SC] LL............ LL(1)[SC.. SC] LL....... LL(1)[SC. SC] LL..... Datu-trafikoa (datu-blokeak) prozesu bat SKra sartzeko → P + (P-1) SKtik ateratzeko → 0 guztira → 2P - 1 P proz. → P2

C&S 2.2 Compare&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

Fetch&OP 3 Fetch&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;

 Hobekuntzak trafikoa murrizteko Txartelak  Hobekuntzak trafikoa murrizteko 1 Txartelak (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

 Hobekuntzak trafikoa murrizteko Txartelak  Hobekuntzak trafikoa murrizteko 1 Txartelak: 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!

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

 Hobekuntzak trafikoa murrizteko Sarraila-bektoreak  Hobekuntzak trafikoa murrizteko 2 Sarraila-bektoreak lock: F&I R1,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).

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

 Sekzio kritikora sartzeko trafikoa 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

1 Puntutik punturako sinkronizazioa gertaeren bidez Gertaerak 1 Puntutik 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); while (adi == 0) {}; adi = 1; post(adi); wait(adi); post(adi,i); wait(adi,i);

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

Hesiak Hesi sinple bat (H, hesi_egitura motako struct bat) Aurrenak hesia itxi behar du; azkenak, ireki. 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) {};

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); aldagai pribatua

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)

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.

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 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