Sunteți pe pagina 1din 30

Arhitectura sistemelor de calcul paralel

CURS 1
17.02.2014

Exemple de procese paralele si aplicatii

Lumea reala un laborator gigactic de procese paralele



Aplicatii
Reol!area numerica a unor probleme care solicita putere
"oarte mare de calcul# spatiu RA$ %i de stocare de date "oarte mari.
Aplicatii in stiinta si tehnologie&

'redic(ii meteorologice)

*eologie Seismologie)

$icroelectronica design+ul circuitelor)

Simulari stiin(i"ice in "iica# chimie %i biologie)


Aplicatii in sectorul industrial,comercial&

-ae de date# alogritmi de cautare)

.magistica medicala)

$odelari "inanciare econo"iica)

/esign industria aeronautica# "armaceutica)

Aplicatii gra"ice# multimedia)



A!anta0ele utiliarii calculului paralel

Se economiseste timp 1 producti!itate sporita

Se pot reol!a probleme ce necesita resurse "oarte mari 2'eta3L4'S# 'eta-5tes6


78emple & 9*rand Challenge9 2en.:i;ipedia.org,:i;i,*rand<Challenge6

Utiliarea unor retele# plat"orme !irtuale pentru a colabora in cadrul unui proiect
78emplu& http&,,:::.accessgrid.org,

A!anta0ele utiliarii calculului paralel

Utiliarea resurselor la distanta &


+ S7=.>home 2setiathome.ber;ele5.edu6 peste 1.? millioane utiliatori#
?.4 millioane calculatoare distribuite in mai multe tari.
:::.boincs5nerg5.com,stats, 2@une# 201?6
+ 3olding>home 2"olding.stan"ord.edu6 "oloseste peste
?20#000 computere in intreaga lume 2@une# 201?6

$oti!atii pentru utiliarea calcului paralel

Limite ale calculului serial:


+ limita in !itea de transmisie a datelor
2!itea ma8ima !itea luminii ?0cm,nanosecunda6
cresterea !iteei 1 micsorarea distantelor dintre elementele de procesare

Miniaturizarea elementelor de procesare (tranzistori)


+ nodul tehnologic actual 220146 14nm
+ se a0unge in curand la limita scalarii

Limitari economice:
+ este mai costisitor sa produci un procesor din ce in ce mai rapid)
+ este mai e"icienta "olosirea unui numar echi!alent de procesoare cu putere
de calcul mai scauta)

Arhitecturile actuale au un nivel


de paralelizare tot mai ridicat
+ single core 1 double core 1 Auad core


Supercomputere

'er"ormanta masurata in 3L4's 2"loating point operations6


+ 3L4'S B cores 8 cloc; 8 3L4's,c5cle
+ 78emplu & procesor double+core 2.C*D# 4 3L4's,c5cle 1 20 *3L4's

Eoiembrie 201? &


=ianhe+2 or =D+2 2China6
+ ??.FG peta3L4's B ?? FG0 000 *3L4's
+ 1G#000 noduri de calcul# "iecare a!and
2 procesoare .ntel .!5 -ridge Heon
si ? procesoarei Heon 'hi#
totaliand ? 120 000 core+uri
+ memorie FF*- &
G4*- + procesoare .ntel -ridge Heon
F*- procesoare Heon 'hi


Supercomputere scurt istoric
1IG0 Atlas& J1 000 000 instructiuni,secunda
+ Uni!ersit5 o" $anchester +
1IG0 C/C GG00 & 1 mega3L4'S
+ C7RE +
1I7G Cra5+1& F0 mega3L4'S
+ studii atmos"erice

1IFC Cra5+2& 1.I giga3L4'S
+ departamentele de
aparare si energie SUA


Performanta top 500 supercomputere
http&,,:::.topC00.org,statistics
Er. 1 2potocaliu6 ?? FG2 700 *"lops,s
Er. C00 2galben6 117 F?1 *"lops,s
=otal 1+C00 2!erde6 2C0 0F0 4G7 *"lops,s

Proramare paralela

'artitionarea problemei

Proramare paralela
Presupune utilizarea simultana a resurselor de calcul
multiple pentru rezolvarea unei pro!leme de calcul:

'roblema este impartita in sarcini 2tas;s6 care pot "i rulate


independent

3iecare sarcina este di!iata intr+un set de instructiuni

.nstructiunile din "iecare sarcina se e8ecuta simultan pe di"erite


noduri de calcul

78ista un sistem de coordonare si control 2nodul central6



"oncepte de !aza

*ranularitate dimensiunea sarcinilor)

'otential de paraleliare re"lecta proprietatea inerenta a unui algoritm


de a putea "i di!iat in sarcini)

'rocese si "ire de e8ecutie 2thread+uri6 sarcinile sunt asignate unor


procese,"ire de e8ecutie care sunt rulate pe noduri)

'lani"icare 2scheduling6 procesele se des"asoara intr+o anumita


ordine ce poate "i speci"icata in cod# la compilare sau dinamic.

$apping atribuirea proceselor pe nodurile de calcul) deobicei o "ace


sistemul de operare# dar poate "i in"luentata de programator)

Sincroniare coordonarea proceselor pentru a a!ea o buna e8ecutie a


programului)

"oncepte de !aza

$emorie parta0ata e8ista un spatiu comun de memorie pentru toate


procesoarele) se asociaa de obicei notiunea de "ir de e8ecutie 2thread6)
este necesarea sincroniarea intre thread+uri intrucat acceaseaa aceeasi
memorie)

$emorie distribuita memoria este accesibila unui singur procesor) se


asociaa de obicei notiunea de proces)

4peratii de comunicare schimbul de in"ormatii de la un procesor la


altul se "ace prin retea "olosing operatii de comunicare)

4peratii bariera este o alta "orma de coordonare si sincroniare#


!alabila atat pentru thread+uri cat si pentru procese)

=impul de e8ecutie paralela este timpul total de calcul pe


procesoare# timpul asociat trans"erului de data intre procesoare si timpul
a"erent sincroniarii

"oncepte de !aza

=imp mort 2.dle time6 este timpul in care un procesor asteapta un


semnal 2de la un alt proces6 pentru a continua calculul)

7chilibrarea incarcarii 2load balancing6 pentru a e"icientia calculul


paralel este necesara o incarcare echilibrata# pentru a a!ea timpi morti cat
mai mici)
=otusi# pentru a realia in practica o buna echilibrare
costurile pentru trans"erul de date si sincroniare crescK

Speedup raportul intre timpul de calcul serial si timpul de calcul paralel)


ideal este numarul de core+uri)

#renduri de paralelism
#renduri in desinul microprocesoarelor:
+ Paralelism la nivel de !it: pana in 1IFG & :ord sie B 4 + ?2 bits
J 1II0 & :ord sie B G4 bits
+ G4 bits asigura o buna preciie si acopera o ona de memorie
su"icient de mare)
+ Paralelism prin pipelinin:
+ idea centrala& suprapunerea e8ecutiei intre di"erite instructiuni
+ e8ecutarea unei instructiuni contine mai multe etape&
2tipic 2+2G etape6
+ "etch & e8tragerea instructiunii din memorie)
+ decode& decodi"icarea instructiunii)
+ e8ecute& incarcarea operanilor speci"icati si
e8ecutarea instructiunii)
+ :rite& scrierea reultatului)
4bser!atii&
+ sunt necesari timpi egali intre etape)
+ nu e8ista dependente intre date)
+ 2G etape 1 procesoare superpipelined
+ nr. de etape cu timpi egali nu poate "i in
practica arbitrar de mare)

#renduri de paralelism
#renduri in desinul microprocesoarelor:
$ Paralelism prin unitati functionale multiple:
+ multe procesoare "olosesc unitati "unctionale independente# multiple
+ ALUs 2arithmetic logical units6)
+ 3'Us 2"loating points units6)
+ load,store units)
+ branch units)
+ procesoarele se clasi"ica in
+ SU'7RSCALAR
+ LL.M 2!er5 long instruction :orld6
+ 4bser!atii& + numarul de unitati este restrictionat de dependente)
+ plani"icarea 2scheduling6 se "ace hard:are)
+ 4 unitati se do!edeste a "i optim)
Cele ? ni!ele de paraleliare mentionate presupun e8istenta un cod serial# Cele ? ni!ele de paraleliare mentionate presupun e8istenta un cod serial#
ceea ce este in a!anta0ul programatorului. =otusi# se obser!a ca e8ista ceea ce este in a!anta0ul programatorului. =otusi# se obser!a ca e8ista
limitari. limitari.
$ Paralelism la nivel de proces sau thread:
+ sisteme multi+core)
+ cu cat memoria cache este mai mare 1 timp de accesare mai
mare# deci se pre"era arhitectura multi+core)

"lasificarea arhitecturilor paralele
78ista mai multe tipuri de arhitecturi paralele in "unctie de
comple8itatea elementelor de procesare# structura retelei de
interconectare# tipul de coordonare a proceselor.
78ista mai multe tipuri de clasi"icari
+ dupa multiplicitatea sirului de instructiuni,date 23l5nn6)
+ single instruction# single data 2S.S/6
+ multiple instruction# single data 2$.S/6
+ single instruction# multiple data 2S.$/6
+ multiple instruction# multiple data 2$.$/6
+ dupa structura computerelor 2Dandler6)
+ arithmetic logic unit 2ALU6)
+ procesor control unit 2'CU6)
+ bit+le!el circuit 2-LC6)
+ dupa modul de accesare al memoriei
+ parta0ata 2shared6 1 tightl5 coupled s5stems)
+ distribuita 2distributes6 1 loosel5 coupled s5stems)
+ dupa granularitate)
+ nr. de procesoare si tipul lor# organiarea memoriei#
dependenta datelor)

Arhitectura lui %l&nn
'()*LE ()'#+,"#(-). '()*LE /A#A ('('/)
+ calculator serial
+ 'inle instruction: o singura instructiune intr+un ciclu C'U
+ 'inle data& un singur sir de date este "olosit in oricare ciclu C'U
UE.LAC1
.-$ ?G0 C/C 7G00
'/'1
CRAN+1

Arhitectura lui %l&nn
'()*LE ()'#+,"#(-). M,L#(PLE /A#A ('(M/)
+ calculator paralel) aplicatii la procesare imaginilor
2unitati *'U6)
+ 'inle instruction: "iecare unitate de procesare e8ecuta
aceeasi instructione intr+un ciclu C'U
+ Multiple data& "iecare unitate de procesare actioneaa asupra
unui elemnt di"erit)

Arhitectura lui %l&nn
'()*LE ()'#+,"#(-). M,L#(PLE /A#A ('(M/)
.LL.AC .L $as'ar
Cra5 H+$' Cra5 N+$' =hin;ing $achines C$+2

Arhitectura lui %l&nn
M,L#(PLE ()'#+,"#(-). '()*LE /A#A ('(M/)
+ calculator paralel# rar intalnit# ne+comercial)
+ posibile aplicatii& algoritmi de decriptare# aplicate pe un mesa0
codi"icat) "iltru de "rec!ente# aplicat pe un semnal)
+ Multiple instruction: "iecare unitate de procesare opereaa
independent)
+ 'inle data& un singur sir de date este ser!it tuturor unitatilor
de procesare)

Arhitectura lui %l&nn
M,L#(PLE ()'#+,"#(-). M,L#(PLE /A#A (M(M/)
+ calculator paralel# cel mai des intalnit)
+ Multiple instruction: "iecare unitate de procesare opereaa
independent)
+ 'inle data& "iecare procesor lucreaa cu siruri de date di"erite)

-ranizarea memoriei
',)# 0 A'PE"#E:
+ organiarea memoriei "iic pe unitatile de calcul 216)
+ punctul de !edere al programatorului 226)
216 &
memorie parta0ata 2multiprocesoare6)
memorie distribuita 2multicomputere6)
hibrid & memorie !irtual parta0ata 2"iic distribuita# parta0ata
so"t:are6
226&
'entru programator e8ista doar primele doua tipuriK

"alculatoare cu memorie distri!uita
/istri!uted Memor& Machines (/MM):
+ sunt constituite dintr+un numar de elemente de procesare si o
retea de intercone8iune 2interconnection net:or;6 care asigura
trans"erul de date intre noduri)
+ un nod este o unitate independenta alcatuita din& procesor#
memorie locala si e!entuale elemente peri"erice)
+ datele din program se gasesc in memoria unuia sau mai multor
noduri) cand un procesor are no!ie de date# aceste sunt
transmise prin retea# prin message+passing.
Exemplu: Messae Passin (nterface (MP()


"alculatoare cu memorie distri!uita
/istri!uted Memor& Machines (/MM):
+ initial comunicarea se realia prin cone8iuni punct cu punct
2point+to+point communications6) reteaua are "orma unui gra"
regulat 2e8. D5percub6.
+ /i"icultati&
+ necesitatea unor bu""ere# pentru a decupla operatiile de
send,recei!e si pentru a stoca mesa0ul pana cand partenerul
este disponibil sa il preia)
+ comunicarea se "ace cu !ecinii de ordin .)


"alculatoare cu memorie distri!uita
/istri!uted Memor& Machines (/MM):
+ prima di"ucltate inlaturata prin adaugarea controlerului /$A
2direct memor5 acces6 pentru a decupla operatiile de comun
icare de operatiile procesorului) se asigura ast"el trans"erul de
date intre memoriile locale "ara participarea procesorului)
+ a doua di"icultate este inlaturata prin "olosirea unui router) ast"el
se e!ita utiliarea procesoarelor pentru transmiterea mesa0elor
intre noduri care nu sunt !ecini de ordinul .) reteaua de!ine
omogena)


"alculatoare cu memorie distri!uita
/istri!uted Memor& Machines (/MM):
+ -!servatie:
.n "unctie de reteaua "olosita 2ethernet# in"iniband6 di"erenta
intre accesarea memoriei locale si remote poate a0unge la 1,100)
de aceea# programarea trebuie sa tina cont de in"rastructuraK
.n conditiile unei retele cu rata de trnas"er mica este mai
e"icient sa trimitem blocuri mai mari de date mai rar intre
procese# decat blocuri mici trimise des.


"alculatoare cu memorie parta1ata
'hared Memor& Machines ('MM):
+ sunt constituite dintr+un numar de elemente de procesare si o
retea de intercone8iune 2interconnection net:or;6 care asigura
trans"erul de date intre procesoare si memoria globala) memoria
poate "i implementata sub "oma de module)
+ din punct de !edere al programarii# se "olosesc !ariabile tip
shared# accesate de toate procesoarele) acestea sunt stocate in
memoria globala)
+ di"icultate& memoria este accesata de toate procesoareleK
/e aceea# sistemul "unctioneaa e"icient pe numai cate!a eci
de procesoare.


"alculatoare cu memorie parta1ata
'hared Memor& Machines ('MM):
+ ca particular de S$$& s5mmetric multiprocessors 2S$'6
+ procesoare uni"orm distribuite in 0urul unui bus de date
central)
+ tipic ?2+G4 procesoare)
+ programare de tip threading) se pot deosebi&
+ ;ernel threads 2operate de sistemul de operare6)
+ user threads 2operate de user6)
+ S$' pot "i utiliate ca noduri intr+un calculator paralel) se poate
utilia cache coherence protocol pentru a !edea memoria
global# desi "iic este distribuita 1 sisteme de tip distributed
shared memory 2/S$6
+ in acest ca# timpul de acces al memorie depinde de locul
unde sunt stocate dateleK
+ aceste sisteme se mai numesc EU$As
2non+uni"orm memor5 acces6


+educerea timpului de acces al memoriei
)ext time 2