Curs APD Final

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 62

'\

U14 --

-il;.

l- :-;-r--T=-- I -;--..i-

t:: ':
:t,.tiji i,ji;lt ti
f{"a!

tn
al fuaatwlst .
e.,wrd'***{n'
/
,

.f
kB
..
+
tbB fF+B
CD e-rb
.

+
'{k * +r3
q_B &*s

++ r++B
kg
'os Q.d.0

-.: --\-.
3rg D-
lbsl
'&r r*1e'"'e-fl/:trD N i*bq+
-Jri,*e 5te tt\
fl" $J" d& ts) ,
PP D
t_

b,^le pi@- ndh**-- s W


u p,*& -01n^ -LltFAl^'* k fu*
?^ B -+f & 4'* +^
/to uA z
&r&%e ,&(
4"
t,iB,e ^h'rJ&t fua n& ;,2 ai noyeln i.u*fu,"ax ;)-
.Lg' :

l^+L*y 1^ ,&./"o{,-
/:44q { 4+ f,PfuN

x ilY I i)u

y{ X t Y l,? ir,*r J { iF
ii!
r'll
jj :

-Bl
:

-Wz
C
L" fi$k c^rs*-"*" jr)Jin**h.'

Ol\
\)

l',1

,. ^e
brr^ ah t,*\ ,r*^t wvLM, lo jtd' M *Itfr!"/l, P,€dn.,C*<
. or.( tlv/r^ frfr-,$*[ ,u i*,.pat t^ r y-,,n!*n p^ /,^9h, d4 ha;^l
[\rl
tfr,,
--_r_ -. t-
[-
I

e^oalgr,ot^, /,t/ tnxinuo* ,


o*&,(F ni .*t
/nt^ 4+*;r!
I
,, unau,'.u, /tntn$,i,*,, tuqi'
T

-r

: a , '' t' .,
, ._-'-' l :

e^ l*p'e&,wn , hCr. {ww_r

HAe.erL&-1-Q"
lr:
& "a$ao'
I

"i tl^i*b; /rtl,u*

i
t
I
I

14
t
I
I
i
i

t44rl,glst

t- 6ttUh
iwa'**^ &t,*q.l^ t*rAer p"tt,!r
f.r#'*t-#I"t "r-ATr.tvr',e NJ*'
/8^ o( .lry{r"k ;*dt^ 4A**: qaA.o
i/
q$t G^r,o\x\ gi d*i -{e*R urr,r. qQ.la h*,#* dt *1r"^{&*
"- '.,"d.la #^lL
i/,* d^& o)'"t ub,j,n#',,+rt uj" *,A'14, F*" f't*"tbk t
4 *^fu,r%.. We"i4 ,1t"",t /t / ^ cd,,* A* g*"-;t/reh*l o
i

(\,
^ t*
t* cr-4r'chr{ dt*&/t W e"Wr!t-r""{w fln4 *W fir*
|,tr *,^
r,, Wy&iu *^ A*bW Nrj-l ?npn (o^*tW {1-,J*^
u.9 i '?-A
y,k^t ,lr^*J"!*q /t',,*t\ ,&-*'/-{", ft*N Mt*/rhrf !^
rr$d )
€€^-L i *^ ,nor&** ,^**! u4b,-^l^ d< &nau,,*tylaq
C q cl*n Qa t^e4,cn..R
*o. $va n)4 . ,v*lt " 11 ,J-,1^! fi" e&*rt /,,.,^Xr^ ,*/w / "@
ryW' ,h p.,,&^*a a,' ool*,h/+r\
f@,421
, h*f &*fu ,aoa/n*".*,
elo

/ s" **4'M
44t"
i'fin*fu** yoo
I

3$".t"*t'$,t*t
"i{eu $AeeuBa|u-
ill
,d (exe,llsitrc,fe*D) - ufu^ drr]d t^$4*-h,,h=w, ,tg^
e2,ll u^ If/tst/t.s n WJ
v A $lelc,ea db,l^
-- -. @,@rfd (-*tN
'

z)E Al ( -.I( 7 Vlfti'ftr), -puift.u.L al*awd f pt ?-f -,t4 4


,j nf ,,r, 6r.r, Arytl ,,; Mr4 o /tc ;k w<r,*6-,$e .

-:)
b-"*.r^$ * or*,L aql',1t
. R. C ry4) cr9r..r s^n^*6 P ?4"
Cf ig'

4\e
::i
$1,,t,
lit:l:,:
i'' i-l i iI I , -:j 1tii.i-.---r
''
-i'
".-.
h',wAMtu !^,eb4
ie" Va*$" d^ f%***'..+ j-oW***,*,ury^ !& .""ry &n4"*^
+*d. i4* ,^ "/'f e''wtolr*l& (o^,-"^ ,*,T***t" aA lry*^
)^ W4 C, &*o^4 lr&"I f%.*4 4*k* r; t"\f"--*"w try,l'"il"
-A.e e. db.$"Lp. a' d&/*,%t'rurf- *,etue a,^f* /*sa*l,
d*i*.*"-o {^"g**4*J *^h-t ,,; nim"%* *&#n WN
i

d- dr*
!

l-q f,le"* $ #a nty*"^"tA d" c@^n$-ll{rrvd.ri 0i ^th^erwtuddat "e,$.{


AE,^*"rt,.
-=n la
fft* 6r-t J]-^W /*eA /ji'6
& tyw,*$; t^
/-W,.,*- ,/.*r- &!-MLi$"
M# T
**f*""a dr uLl; frdtuiw.4 (A*rrt",^r"&"4 ,y'

"*df i
;,-.U; dj d l.*rfj,*J

4trt-ilgt,

6a{ esL{ 0fr Yy- -^


rgr^].64; {r,"? . "}-r.or'' {r'n-er*\e & g"*rt^**q
"Ia

*> edA,{,*t q e uu*rtrprW #"rAr4"* *-fsrd


-nlx

i€ P"$*1,ilri.fd* *z je EA-6 d* &tr-^ rr-'rri'r #*J*J


tJ /'" 't,fi:- ilu
AN$r, - '-/Ix-yw*{*la-o,. ,!**."1^ e -,j -
iI
i^ t t tr*^
& fw,#, r*N
_

(4h 'w,*$untcl< d"*"*lhl p.^; 4+fJu,


,ol *
@
{uu
I
,
ffi;ffixTffil
. -) yflry f$.,o* ot"rt7<"fu,Ih
3.r T*"lnlui" tere h ^

4. 4ffi "!d",A!'-{^ fe'grtlr'

d-tt"r:* I,)-)z . - .. (u l^Jrrt'e"J u d,r,rr*l


€no!*Lu,,,qq

aI'd&tA
Fln,n " d, {** ,r*W eun}r&-, aA

r- n*ra&.i &r eh**L.,rr,,^ 4t, osdrd^-rn rw,e*M^ -

3 . P"t *',Jrri ,lQ


fr",tl*l,-& Gl il1*r4"&*' go^,r{r-Q "

t. LrLwfij (w**f*w) - ryvt t&e &


T@ ?2. u- syet-^,# i,{"*(*A

rvvqw,,; G, pa*6 * ,, .& tr-c$t,.{"s.'a /u *W^


uca!:",,[ta, Ce .

# &* Mrfl**r /l*'& 4, "U*ur,,fi^-co^ rtbla* ;dh f* re., a^ zffi#i


d" s*tt*'*r* "la
/a*eut*ft ,",t i^-t*o& uA!t6"*{ ( r*, */"fu
rRtuH
*,
,* :) 6 p 4 b ,
I

v*#wfl* c'q e.c@.&/*.lq oooxtn€ @<


F
'w 7,rf<
*t
,W* &,-nu' ,A^e
A " /.t N 4 7*{"Ur*A
)J;/"** f*a*6,h ,L^;,,'h^
elhi ov,

fr:
i

'oo*&r,yro
Ct i $' &;' ,-d ,?rnd ryv-eq d'di {14 f e
- ,ert,-
fr*r t'*r*Lp,q
f*q'6 d^d-il; . #r*/rw'-l*l** ft**< "nA-*t{*^I n*M*&v,( 4'*,!n*
co'<

,t#r:hw d" .fi^ *ll^flX u* ,.(Nl^A--#


4S T' ,y$"o
a^dd

i lllD , i I r : 1 , , i I i i i :i

' -i' l' --, 'i -;" --: - t-,- ,' ,


i!i
:

-, l-' . i
s8
\/
' ,4"
Lr)
I

ke (U'-lvt * pr)
C,p= f* F_
"t-
tg
3

| € ,wr(p) {rvtQ)

p ? ReEr t a RpS !-
q -{-lf .

r=€F #
(ut
CIO€S6
:

{p,
!€r s,t
I a'r(**4" L "&*,1
I
,*A (-r*LJ-To) -drAat @. qaa,*.
rl
gt$. e-*^! fq
q\ry
U
t
w l'4,qilJarp i^ r'lv*\r"{,vl 4N *@"tv{ a}<

yW eeu*
To= e7*Ts= FTf 4
@rrr-)p * cLtu",+i f-F 4e'*e ut* t

uu uln. eh"^,4l4{ d* nA

't oq--*SL )""ff"A d"v

\ p*dl ) \t&"'^ & MledW arA,,J ."^


N; Arcr+

@6t b*
U "e4-,{ S^ o^< c "r*[ tilf-"

d;t
@tYd" & epl*
:$,r$!4,! BRyH ,a
*,/p1,**)'
n*r&* "("
.\

yh$tu\ a
/WJ ,e*(
,- du /*1,, g; /^
'V rE"\ oe )
€qe "0^ f"trJr- k h* c,€n# /".'.
- rhk#*^ l; &s,vr,$ Up;*t"t

o-
pey^ d!'
/"-A:*, , eh*,'o-,
* & \ o o\r €< X^ vdri Al\r.,,&t fup,efrV ett My,Lq
/
.*,*t4M /f oryflJr'^td&e

F" )fJn tuy*^ fiqn,,


lt
ru
lr'r*ul"=.^ &*y* f*"l"A rx {a aAlttu" t, yd'',c 4 /"rb",

a. oftqfu ( a"'fuvL-; /t,'--\ M.d-)


L a#""^"lpr
//
( u t"qJ^^&tj^^* 4.e^ Lr^1 bV* A W*rltt;)
,, ^\*u,,.Jx ( urrlx )
i A 9*LaVw7^*n
"MLiffie /,,t,/A"
: @,**!rftitw4 Ln$ouuarr,*
"fr"
n Nt /i
f'na/taerztuf*rLq,
ry
a*lltruW
- o.dit*r.4.L ,i oo^t^,-rubc*t Af nn^*rm*-,i."t* !^e^"-+ ,

)Muq dU* .i^^i,uu-,tt gfu

ff.L*-0 o,sos",
{
-,u,uNloi& f^*"&e{P,
-.Qo .bbA*r',:\ ;"*kJrk /4rt,,*, *\l 4aqlt :,. PU t1 ,,P4 ,
( ppi 4 oinpl e) I
h'b&"a np i

MI d. /'^rhr'
9 b***;4 f ^JJ-( spftr fi f */-!J Mub
T^i^ u" t*J,,'] e4 a,/nJ"r{t
# zao &fu6furt y*V/t.h
HP;

9,,"Llil"; y*S* H Pr :
I
A Eud, k ei
V trtirAirp u n

T",i* ,2.
ce W-$a""*E **bto/*
fu*
nE @ s h*era
4*e upi ,vti
& f^rye,e d- *a ) h i,tu^l oLt&u^
f+ab
NP -g' k.y't txa"fu N ,A'"J alil o^
1wo{e "/*W$--t
&
X Pi *Q'oh qn
-Sir<
atu. * &, f,,{. il*^ yN W-pn l
l-( Pi - 0 gn n4 - /^nk - - ,rtf*,.n*.d,& io
pi
04 -Col-tH -W o relO'
*l__._.--t
--\

@o

@
a @c W^PZEEP
0 vv
'Q0^@
oo@
. &5s
@ g €

ccnnu-"'r-t"f0r

-"J" cry^.rrr^f,*1N NPi" nve^Vi pj @ dlnit^^*fr


,twfu l'@i pd cpw,*wuo, i^t-,h /-* /^; p".tr,.fp6-q^
t-{t
h'fu, . Tt{ cav ,fr'"*r*ua!", id.,^*/rrjl u^
W'& F

't'lv6 a ,.**^or as"r**u#o. * i^Ia ae*sn[rff Jb-r*

11 pi !4*, N 'u'y',, lLi$-o& ('.rr'^.lULt &a&A fl,,^


I

ryr/-r v" l'"tdd g\rrra v6 *"Jrfu u/y"/h{r& &1,u, Jltr-/),


il4 eAd ee

,1
,Em r?<av<

" Mds! *r',A;l


d'-*"tu4,*" y# N fr;tfL
,tty-+r#; a V"rf.*
6^^
. ftoJ'r! g^*^ - th,;N".'^ :
f.{< f*q-l* p,rte'![^/
Mf-*h k'r @ e!r^^'

,[N- tt p;
0",", ;e 8l* poir&.-^h.

5.t
o"(Pl-SA
[4Pi- Rarv W_
tH?i
\.

,Ncr

hPLfS'z"d
t1 p;
-)"*Tl
A-P; - it'r",*,1
t3 eo"4sr /-tpif.'*A H Pr-i

tt
'H * 5",a (v*vt 't b,.//4 ), Arf cB,^* ) t4 P)-D"j#W
P i
,yp4 r i# .l't , lrt *ro; ) HPLCon n ,fu,^)
'l
'a4 _

l^f o'( P;.- Rrw t


, T*-+,uso# ts,W )[*t -*d )fi,tef.-D"*err,- e$f ,
. {tF ,f)p*-e, An* +% , H\i-Aornn:cgrq441 )HpLge; M,4
' c-dnr:a<*.^r--tA I*w.lo hf^" hW a4 -/*/"*rE /^*. R]
"/**-

Q,uyw^^^
Yf; (t fffi T C^ *^**t"*,cL q /^^,rf
, A de.
&,*- f@ vrot.r,^A,a t); e" l,gh ( w w,wr/t& t

A{,"SJ @on,/o-' [^ 'iil - utr /r*r^-'


p\ fao
te /.d - ,rrr#t u \t A ar"fe*r, o,ili^|" d^
'(o) g* f"r*"J
{j y"N
a( ;^,4* {*X,!. 1

l
l
I
Hpi- s"-J (4 fr*K*k ,4,ttp|
.nt, dSE-, h D('Iot<Hr,'We etil;
h Pi-f1un, (& i""%W , 4,UPi-iwT, D,5t flPl*(ccttn*Wart-isr&
f"r+l ( *) ;
H pi --Fi^Jp<Ll :

(+
4, Q*,,*tt' ett!fr,^,t* HPro
n-d
0""t$4 Wj/LtAt\r^ee oBQ"afw
//

Ct**fi'oo*t-l''
i
- t"{* cenrrv.r,*3aln*4 @(l"{A^ Ujr*
- \4*
f,ele,/q 14
"1r y+/^N

f* "e^

$#^
{/
e^ crvur-r+eo*e1' &,fu.4 ,t '

t nfna+'^g-. ( y,"r**A e*fr ca W **fbrtr\ ,fl*fJu


LIMBAJE DE PROGRAMARE PARALELA

1. Tipuri de limbaje paralele


Principalele tipuri de limbaje de programare pentru procesarea paraleld care se utilizeazd in mod
curent pe calculatoarele paralele se enumeri in continuare:

a) Extensii ale limbajului X'ortran cu paralelism al datelor.


Primele limbaje paralele au fost dialecte Fortran pentru calculatoare SIMD:

mai multor tipuri de calculatoare (nu sunt adaptate exact pentru o anumitd arhitecturd);

90, implementat pe Connection Machine CM-2;

Fortran cu paralelism al datelor eficiente pe diverse arhitecturi paralele (atdt SIMD cdt gi MIMD,
inclusiv reple de stalii de lucru).

b) Extensii Fortran cu paralelism de control.


Unele dialecte Fortran pentru calculatoarele paralele au fost extinse cu paralelism de control.
Acestea au prev[zute rutine standard pentru crearea gi sincronizarea proceselor, precnm gi variante ale
instrucliunii do (doall sau doacross) pentru execulia paraleld a iteraliilor. Aceste facilitaf coexisti cu cele
pentru paralelismul de date. Extensiile Fortran cu un astfel de paralelism sunt:

c) Alte limbaje paralele sunt:

opereazf asupra vectorilor;

HenCE.

2. Limbajul ACTUS
Limbajul ACTUS este un limbaj vectorialbazatpe limbajul Pascal.
Exemplu: tnmu$irea unei matrice cu un vector:
const m:200; n:100;
var
matr : anay fl :m,l..nJ of real ;
vectb : array fl ..nJ of real;
i: integer;
begin
vectufl:mJ ::0.0;
for i::l to n do
v ectu I I : mJ : :v ectu fi : mJ + matr fl : m, i] *vectb [iJ
end

Observafii:
. Tablourile scalare se reprezintd ca in Pascal:
vectb: anayfi..nl of real;
(elementele tabloului pot fi referite numai cdte unul la un moment dat).
r Pentru a reprezenta faptul cd elementele de pe o dimensiune pot fi referite paralel se utilizeazd,
nota{ia ":" :

vectu: anay[I:mJ of real;


. De$i sunt permise in limbaj tablouri multidimensionale, paralelismul poate fi specificat doar de-a
lungul unei singure dimensiuni;
r Se pot defini constante paralele:

const n:l:(3)22;
(cdnd incrementul lipseqte se consideri implicit l)
r Pentru a identifica elementele unui tablou care vor fi accesate ln paralel se folosesc mu[imi de
indici:
var aa: array[ I : I 00, 1.. 1 00] of real;
index interior : 2:99;
expresia aa[interior,3J va face referinld la elementele aap,3l, aaf3,3f,...,aa199,31;
r Existii doi operatori shift qi rotate pentru deplasarea datelor intre sau in cadrul variabilelor
paralele:

var bb :arrayfi:1001 of integer;


indexfirsthalf:l:S?;
expresia bbffirsthalfl+bbffirsthalf shift l]
determind insumarea elemen-telor lui bb de la I la 50
cu, respectiv, elementele lui bb de la 2 la 5l1;

expresia bbffirsthffi+bbffirsthalf rotate-U determini adunarea infe bb[] 9i b6[50], bbp) gi


bb|], ..., bbls0l si bbfa9l;
r Instrucliunile sunt similare cu cele din Pascal, cu diferenla cd pot avea asociatd o extindere
paraleld, simbolizatd prin caracterul "#".

Exemple:
if a[1 : 50]>b[1 : 50] then a[#] :=b[#];
if any(a[1 : 50]> b [1 : 50])the n
a[1:50]:=a[1:50]-1;
if att (a [1 0 : 20p b [20 : 30])th en
a[10:20]:=b[20'30]
while a[1:1 0]<b[1:1 0] do affi:=a[#]+1'
white any(a[1 :10]<b[1 :10]) do
a[1:10]:=b[1:10];
wh i Ie al I (a [1 :25]> b [1 :25]) do
a[1:25]:=a[1:25]-1;
within 1:50 do
begin
affi:=b[#]+cffi'
b[#]:=b[# shift 1]
end

3. Limbajul Dataparallel C
3.1. Prezentare generali
A fost definit in anul 1991 9i reprezintd o extensie a limbajului C* (1987), proiectat pentru
Connection Machine. Are urmdtoarele caracteristici principale:

format din mai multe procesoare virtuale;


r procesorul front-end executd po4iunea secvenliali a programului (care constf, dintr-un cod C
obignuit);
. calculatorul back-end executA po4iunile paralele ale programelor Dataparallel C, porliuni
care sunt delimitate prin construclii specifice;
r calculatorul back-end este activat de cdtre procesoruly'ont-end, la intdlnirea unei construclii
paralele; calculatorul back-end va activa un numdr de procesoare virtuale care vor executa
aceeagi secven!6 de instruc.tiuni pe un anumit set de date;

doar de program gi este independent de numirul de procesoare ftzice care sunt disponibile pe
arhitectura hardware;

valori memorate in memoria altui procesor virhral, inclusiv tn memoria procesorului. front-end; de
asemenea, procesorul front-end poate accesa date din memoria procesoarelor virtuale;
programatorul are, astfel, iluzia unui spaliu global de nume, chiar daci arhitectura pe care nileazl
aplicalia nu are un spatiu global de adrese;

' poly data - structuri de date paralele, la care fiecare element se memoreazd intr-un procesor
virtual; datele paralele sint declarate inf-o declara,tie domain (similard lli struct); declararea
unor instanle de tipul domain se face utilizdnd constructorul pentru tablouri din C;
. ,nono data - localizatein procesoruly'ont-end;

Exemplu:
domain cell {double x,y; int a;};
domain cell mesh[30] [30J;

D dimensiunile tabloului precizeazd" numirul de procesoare virtuale care se vor aloca pentru poly
data;in exemplul anterior, vor fi alocate 900 de procesoare virtuale;
) fiecare element al unei structuri de date paralele se va memora pe un procesor virtual;

J
F procesoare virtuale alocate unei date poly swrt activate printr-o specificalie domain select;
corpul acestei specificalii precizeazd secvenla de acliuni care se va executa de cdtre fiecare
procesor virtual alocat; corpul unui domain select se executd sincron de cdtre toate procesoarele
virhrale implicate, fiecare operdnd asupra elementului dn data poly pistrat in memoria proprie;

Exemplu:
domain cell {double x,y; int a;};
domain cell mesh[30][30];

[domain cell].{
double temp;
temP=511"1'
x=f2(temp);
Y=x*a;
]

variabild din procesorul front-end (o datd mono); de asemenea, membrii :ulrrui domain pot ft
referi,ti in cadrul unei specificatji domain select a unui altui domain sau in por,tiunea
secvenlial5a programului;

Exemplu:
domain node {float t} x[100];

fdomain node].{
int index=this-x;
if ((index > O)&&(index < 99))
1=(x[index-1 ].t + x[index+1 ] t)/2.0;
]
F din punct de vedere conceptual, secliunile paralele dintr-un progam Dataparallel C se executd
sincron, sub controlul vrrui master progrqm counter (MPC); MPC va indica care instrucliune se
executi la un moment, in mod sincron, de citre toate procesoarele virtuale dn back-end;
F fiecare procesor virtual are un LPC (local program counter); existd urmdtoarele doul
posibilitxlii:
. MPC : LPC - procesorul va executa instrucliunea indicatd de MpC;
. LPC > MPC - procesorul a$teapti ca MpC si devind egal cu LpC;
F similar execuliei sincrone a instrucliunilor, existd sincronism gi la nivelul evaludrii expresiilor;
pe parcursul evaludrii unei expresii, o anumitd operalie se executi numai atunci c6nd operanzii
necesari pentru acea operalie au fost evaluali de cdtre toate procesoarele.

3.2. Exemplu
Integrare numerici
2
Sd se determine valoarea constantei n ca aira suprafefei delimitate de curba 4/(l +x ;, in care
1,. I
it= l-
il+x;
Aceasti arie poate fi aproximati pebazaregulii dreptunghiurilor, cu suma:
M-l i
I
1t->-
f,ll+ x,'

I
unde r, = (l + -)/N este mijlocul celui de-al i-lea subinterval al intervalului [0,1].
2
Problema poate fi rezolvatd utilizind paralelismul de date. Se asociazl cu fiecare interval un
procesor virtual care va determina lnf,ltimea corespunz[toare acelui subinterval. indllimile individuale
sunt adunate intr-o variabild sum, care, dupd aceea este inmul,tita cu ldlimea dreptunghiului.

#define N 100000
#define lD (this group)
domain interual { char dummy; } group [N]
main O {
double sum 0.0;
double width=1.0/N;
[domain interual].{
double x;
y=(lD+0.S)*width;
su rn= (+= (4. 0/(1 . O+x.x) ) ) ;

]
sum*=width;
p ri ntf (' p i =%1 4. 1 2fln ",s u m ) ;

- calculatorul front-end executtr ultimele doud instructiuni; cele din specificalia [domain interual]
se executl ln paralel de cele N procesoare virtuale;
- suma globald sum se calculeazl, utilizdnd un operator de reducere +=, care insumeaz[ valorile
poly lntt-o localie mono; aceast[ caracteristici de suprainc[rcare este definitd in Dataparallel C pentu
to{i operatorii de atribuire din C.

4. Implementarea limbajului Dataparallet C pe multicalculatoare

Limbajul Dataparallel C se implementeazd in mod natural pe arhitecturi de tip SIMD, in special


pe Connection Machine, dar, existd implementtrri eficiente gi pe calculatoarele de tip MIMD cum ar fi:
nCUBE, iPSC/2.
lmplementarea limbajului DataParallel C pe arhitecturi MIMD implicd urmdtoarele probleme:

5
- procesoarele virtuale vor executa pe procesoarele arhitecturii MIMD care, ln mod tipic,
opereazi asincron, ceea ce impune ca sincronizarea sd fie realtzatJ explicit;
- spatiul global de nume trebuie implementat prin transmitere de mesaje;
- compilatorul trebuie si incorporeze in corpul programelor anumite puncte de sincronizare in
po(iunile [n care este, potenlial, nevoie de fansmitere de mesaje.

Cflteva exemple de sincronizilri in instruc{iuni condilionale gi cicluri

domain node { float t;} x[100];

[domain node] .{
int index = this-x ;
if (condl) {

7 = (x[index - il . t + xfindex + 1]. t)/2.0 ;

]
fdomain node]. {
intindex=this-x;
while (cond2) {

1= (x[index - 1] .t + x[index + 1] . t)2.0;

]
Toate procesoarele trebuie str participle activ la orice operalie de transmitere de mesaje. ln
consecinlS, compilatorul va trebui sf, rescrie toate instructiunile de control care au ln corpul lor
instrucfiuni ce necesitii fiansmiterea de mesaje.
O instruc{iunie ifva fi inifial translatati fn:
if (condition) {
statement_list_l;
communication;
statement_list_2;
)

iar, in final se va transforma in:


temP=ssn6i7it' i
if (temp) {
statement_list_l ;
]
communication;
if (temp) {
statement_list_2;
6
)

O instrucfiune while se va tanslata in:


While (condition) {;
statement_list-l ;
ommunication;
statement_list_2;
)

iar ln final se va transforma in: i


temP=7PgE
dot
it(temp) t
temP = oondition;
]
ifftemp) {
statement_list_l ;
]
communication;
gtemp = globalor(temp) ;
if(temp] {
statement_list_2 ;
]
]
while (gtemp);
Variabila gtemp este o condilie globaln. Ea este adevdrati dacl mai exisfit cel pufin un
procesor virtual care executd instruclirmea while. Chnr daci condifia locald temp este deja fahe,
procesorul virtual trebuie s[ execute primitiva de comunicare, atSta timp cdt mai sunt procesoaxe care
executi instrucliunea #zle.
Hpi- s"-J (4 fr*K*k ,4,ttp|
.nt, dSE-, h D('Iot<Hr,'We etil;
h Pi-f1un, (& i""%W , 4,UPi-iwT, D,5t flPl*(ccttn*Wart-isr&
f"r+l ( *) ;
H pi --Fi^Jp<Ll :

(+
4, Q*,,*tt' ett!fr,^,t* HPro
n-d
0""t$4 Wj/LtAt\r^ee oBQ"afw
//

Ct**fi'oo*t-l''
i
- t"{* cenrrv.r,*3aln*4 @(l"{A^ Ujr*
- \4*
f,ele,/q 14
"1r y+/^N

f* "e^

$#^
{/
e^ crvur-r+eo*e1' &,fu.4 ,t '

t nfna+'^g-. ( y,"r**A e*fr ca W **fbrtr\ ,fl*fJu


r:y,er* &-$u uri /- M4' ue&n#on'
,{ e,\ 9^ b*t'o; t( P i *AAnRlL-e
p-, el*6dn PrFff (t, ri -cs,,*n **o* )
.l
t f.n-"r-*i^-.t ['n -*"/
"-*t
IA
;-fj nPi -fle*rt (, **1, v b'u&n , i^* eer**t H p;****trtr
)
&*+yr- ,, [# D&u-'tw , l-t P) - t atwwr ,*,*-)

lrr'
to I

N Fi'
-{H&sT
Pr E!pj;;ld
Pi 'Jgiilbjjq
c) 11
Tro,-,",nan"., 8\ wryr/.a tb**Cfur; c{ *n&{,', :

.fr* rt pi *sr*J rueo'( o*#, ,r ,bu


n** p; f/ , ;r,t
i ) -tr,*;'+/f-"=-,
H

bnb// ,}# Qes,t,*t' :ufrJM+f


^{ffr ,L& d** )I';& #*S ) v*,rbl
*vf,,
li )
iiri 44^-.Lc< l&
", tfoa
a ,
FP/-('"* * ) Hpi-#dL*'
)
o"i&,4,
aerrw^*l
j

ctc*Jb* #"""!* aw-d^' L.f{*" ny,-q,, -A-*,uwttra


f.
**#r,- 'r*r.*$!*. ' /,# g,

' t,O
*t/*- /or.\e..#e "fu /-r/,^
- k Fi* ,w^,{,,*av Wp/+-u 6.*<
./ -
pq*k uW*u^ c,u,^.,*"\ W / t 4r**,r; ,r1'tf u-Vyw .

Qi "€r*r,,-u#,,' /
},iof^Lua,*u ,Et 6^ e^ 4^ un
f.um A {""tr
rcfr&i& &,u **'**"&r
!

i l't Pi-s**#q. , nPi- S".Co,u7


A&^,+" .fu'd,u*\ *(' ffi ,npl- B.*"{ @*,}i [^ /rl-l * avL,4 u'
cbl"r4,
*+
I
4 fe aa& }-*** n*4 dh4k'fr /e % w retrrt"g*urc
yp
I

Wr*,'t feuo tM
z.r"g"rl>ci
f;* .+* or', tr\.r" dtd*-'/- dt *At"*',A 8A,, ,r"rd :ltulr)rtk
, ,&*ur' lrrnu*o dlu tr.rTtlrrulc"&1 af.ernw\ u &e",e &rf* _Wy
W,,
i*J)
I

Pa ffi:l-lll
re
L i.t B"
l
I
B pi
P.t L.',9 \
)
F.
Pe
ffi
% [ -T- Ti=l-l
oP:
W
l$f Hp,t*ecdfl-rR ( /e,# v,o.,J Ld t &,f nan{o*t , drp;-WF<
Ntetw .) tud rvavt'/,i,* uaveettul ) '.rpi -ryf",*tW )h+
ft** ir' tl )-
PLco^rF$( , a n' tX*#,
"e** ,li" h r^
\ i'p e*aA-" ,Aeth &L a {e;& *.oc-rh cs"""*,."fo
4) he ,-ii -e #rtr, ( ven{ F rwlW ,h* a*!*u* , lxbs't)

H Pi p--JW 1,t*'du w owr*{: t**


,ncawr,*rVoiDchfr7p. *ru/.ryw J [rf- au#) #PLaotrtw t*^*)
r,$ {"4r 7i WfLry"M. CA,o ',<*rdA 4s^$- r*,.ru&**#
,t*atp*aE
,8, Sr3cr^I drt t",*te i^ E /t*tu rr-c,v6-qf*s ft *(^ f**&n lr*.$*"+6,
ai is"*",..k f,1 & &'f M{ l* e,< g' ide'.*6 det, [^ (*"&, Gs*.&*,*-
,Jt +^"*lr-f*" i"W,/rt^! &4 -@

&. ,A^ &*^ +'oo(p udn* ect +"t*ot{ro a*r"n ), rtp


@
4b ttP,'- g^#t^t,
Te"e- il-t$- J" &' ke f*"*l^ dg^ te,*+'*vr& JhW
r4li &jcrtLt : HPi_HfrG#i,","

i*S" t4 Pi -fttredl-^ ( vwd i, ,r^4W ))'fC' ft4beep,^t ) H'P i-D*$'W


a#{Vne .vet*,| + n"r*L4 ) i'f
fttv "4u# h,pl-W"+p *rtyf" I t
A Bi- c€rruwr C5r/nr^)

I
; pr,^&rdrte& prb*"' l-l-oa' /1,"
q.4.4Ek , {, w.'r',*-&. U,^ ,.A^

Hp i
-rl.Jo* ), HPL ilu ft,/-Ep
(hi,,.e #"^)

\ Hpi *J&dffr
/
L n pln"l^*/ nnig{d;$s,e. :.
Pi Jrfrx t- -,t-ti *t ; _Sa n , *Pno D ) L&pfi ) -13 ftttU t
o,Q ; -Bih )-_LKIR ) *AroA.l -HAxLoe ,,-l,tfltnc.
!

r-1'Pi R'Jua^ ( "r,-etd t ru ovbu/, i r vp)- i wr, trpi-sun


) 0,

@,/ 'w;t Pm&

+
HfH4H
.l
{"*l*t' $,rf.t*it ,h. p*Nr* l, HF i

connl.,'fu-Jd
\ral
L&^r h_(hLe
f fu^ p.,*i'44$a' e#ra/ n, "*"*efr

L) loO,"t*" Qe,X?,u,hry6, (cnit), -u ,-q at 1&{h wr d<


*-,^d" 6*'* e l^""* f^ &* erc5 ,h r*re"*/; .

r'. ,W&'h)pl*i; y6r;l# dq^",*vr.-4 ,$4dr


e *61
W"!*{ eN /-,; &*"
op^iuaa& J*,; &*
,{ jnryjy ,,h
f.tff ,e*d*
erh ,e*,W
Vt
WlqM . ftP; f*J,,J,
p,e-T. WIW. '4tu1 tM*,
k^J"J, a,A* yI &&wo^
g' @*4atxrw
A'
T W
rt!* *p'l
?7flyl-J
c Rtrdrtr
F*{"rl-y<
-tEeL

nni
-e & r,* (ffi) pW' ft#,X;1
5 cX.^.-[T,4,,N g4\turadsT, p***Utyi/*t,

l.L,n*-i e.**r,^..6l / Cjsl^


N $ O'rl,b, L-
fi -. .1,-. - . i .-,; : -. i - . .l: .rl
^t_-- f
\l

. tX-'
i'.i'=f;#,!,*..*l],'.-l'i
i ,l
,ii
'rr',o, , '-rI\, ' I

ll

'; i ..1't
l' t,-t n't t i layfu"= 4; '> ffi ry+HP1-y{'[A..t)')
l'..I'-.''J_-'''...'

l'-ll
I --1
ill
.-
:_.${u
, l-r
jr,
-'-- l
n;'r)u;'*_,
:._'i:-'}'\^..<Tu;a-.O.)!\z-rl.:);.i'' l.' t' i " _-'_l i: l-
|'il..,,J*l&+;A',&.-,{')':
-l _: ,__..i-: ___-r _

'i , ,'^, ,st,^r"' z\/.(*ft;*))

-
, l,
, , l-, r,i -'tlPll
I - .l'--r
"*rilt-o,Ua ( f& *l-ri
,o, (g';-,olrieii
ltri
wj-pi
W-Pl)r&ti"i ,4,
l
t*u n't4' ,ilr,
noi-bopzr r hp.lso j{),,,1I
,4,noi;borrzrrHp'r-s,,n',{r-,,
r-Lei ,41noi-bopzr,
f
",1

.',

, ,,J-.-,--'Tf ?t<<u\a'"*6fu'q,<*1{ry-futi i , i ,

'; r--:l -'-,*-i --.-.-- u.i-i r'_-,r . Li-i-.-- . .-, i, i- i i i . l i i f


' 1- - -l- , I i ! I , i :
'
,l_iI -,i-i
:i ],,, I i-- ' :
r r , : i r i , : i'., l'fi
, , ir+ r ! t

t :'t I i j , : ;-
i' i l-i-
._

' i i i-
rt i
,t I
iA
--r

_oi_ rL
W"W.*1E-T4
-S;*&'^
-a) .;II* ;;&;,
k-

44rU<=.L
erl-{

i1
jli

i1

I
:_ I

;]
il
- ;- :-
'I l irl'-:7 t:i
llr .- 1 :, , I : :-,---.-,: i- i i- . .. - :..r
]--'. -- r-,-,-.--.--- I I - ! -
r r
';r@jrr=-g_,-': 'i,'- .i iil=
.'i"]'*c'"lff*ft'^Jl,:_
il
' ilill . -'i
:':-;l'*',,^' h\-{f,-a'rn'- ^ll ;, i-i :l-i'-'i iiri;i 'tl
'1,,-; --r-
---lT
:. \:-.-'. :-- .- t-= . -- - . . i
l-"+i{J*-i -- , r , i - | , I l- i ,--r . i - i, L L

,-!(/r-r4**-- '- i ' ' ' : ' :i i I . - t i I - :-


r ..

E{ - ."- ' ,,,n, --i-- :-;;: :u,

: li.-
!, ; I i I I i ! , i i

.r-l

'.l.'o*f.{4+*.zE...l,.:'

.. ,i
l,

,-, ".^'"-': :,Noi=/Uil;*Di;+mr"J+. ,.


i-
t

I
l.
lrl
'il

l-f-1-+**; -l-;-r *-
I
\ '*a"A aufu". @ oubM, Ani*
fy4,,tp@d
^
*t -'
noUbk ,*Vr ''AV*rA .dte, l,hreh
- d; A&'+t'.. Jt' M': #i $*ery &t^, rrro*owu
, '*$fu., dohh, *ta.te'e- U: ,rnLl*L w* ftt;*
o{ 0,",4JALU & d*W /"eh al fufuu#=As
t W*I#. U t*r.o,, er"*wa a
f*Irr,At o,, ? .;!f*fr tln$ dE_ qr,; /^ u^
,,

* d^f d,*. "i -,f,,- dh /dJ4 ,M*t/w1 lo, aoa,a'( "&


^f
e.d*&, ar vA /t"r"e^
l:ti
nl
,AM',hp) . la &-;- tfr&r 4o^',,^W,h uq.
'4 P TW
,//t'/

(r^
^WLr{^" &,vr"uf,*w' 4 g-,'tb^ il},g,tztr&, *!.'
+ierr' B.uk/.w,, Up+W 1,'o;L*1l a:atu#kvot
r,itl',rilltti-l::: / &4.'

:\&b&, u^W &,, ^tLfuT -'un\ ;fu*< 6yW


*F

{#aa &"r
EA 4' )-<> A] t1 t
)'
5, .ll^
F t---- ;tr 6Y *at
h
rjllo Tr
l*
t\
I [o ]t l8 1 -lt
II

Ao'
r -2{\ r r, trr tt i tq tr
I

' , lb,ak

'&o t
alt*^ Hi*hq

,=Aoo'B o

#t,'8,o
l' =

I
I

l',
I

i,
I

I
I
i -:i
I

I
i
:

i
I
L

I
I
*
I

I
l

I
r
I

I
I

t,
lr

t
I
t
t
I
- **-'
dW.at)&, ,

l
j"

$ s,< lz
I

I
l

j-L
'+= ;

et,l . '
-.1t
-1
l
lr
--{
i
-1
-t
-t
I

-1 I

,J I

-+f
ri
,rl
I

-+ I

-t I

+
:l
--t
-i
,/lh ort*h Pfoeesokft tr
i-1
,A **1o :f L -a? q
-t :

-t dftu{, \3 5' q5 -sn 2 t9 &o7f


-1 D "d>t
-.1

-1
-+
,dd'r
Y"
^\ ' .
.. :i, :

- .t
, {iri) , 0)h ) 4 t,, ag-q t 15 55''.&t 95, gt,-
,
Z L1 tq 19
z .[$,.2-5'\?'69 ek,ret 4.jr ) z2;
1--

ltts Q 3 ?E
' _j'
:

e.z
'-. 2 !-1 tq 4 8, 53 74-8F 89-
=+
g f-55
(r,z
I

eh l9 tq ItgZsu\4g L2 ',*/ *F It gg
-t
:,
\, 43 -zg.
Pa Z?, Q,,a,
W t€&s eg
-.t

(L
H
{)
z' \ t3 t { 6 Zzt2", tt 0 Tb trb f 55o-t',
9?" *

y4itWifiW$d&'i lii.':., i: :, ,-
,4,inL-sn4 'i J*thr&*Wi -
tlrf1:ili oth,
=1*ffi44 &,;vlg |'C i:*e:,= 1,. l---l
-1"fu
tl hrq I
4n1l
Wr,l$fu:p&/u,**4t,. :,i-.--, ,,-
ipi:g &i r,,t',
', .r,l " l.ti:,,p'l :eallu'
,) $ ,(fqt$J),&4:
| .-1-,

-F &.Q&A ,, -,,

I:
l,r
-
ti
1 : - i l-
: :'] i

rl
l.. ,- -, , .---. ,; .;-'.-: - j-*
--r
i -- ---.----
-
*-----.- --
F E,q'.=- v*.\a' (pf". t **drJ
i-
',
i-.|_
.I :
=€
,t I A"
,I
il:.
iJ

4J4

Op
-
il"f
1 -t {ir*
j - -{k
fp
..--:-j
'-j'-

I - -'----.
r -. -l-

'..._ -
_:
@
dt- ,
Q^r
(rhd

fo ,l'

€-

a, *,
*Q",,&""+ql
ilr;T &"'u'Ol o,:f F.,*n',
f*\ o{
"t
,r k\
_:i-_o_--2
r,l
;: ir
__-

:tf;*fu;k';t1'i,
-l- =.O-
f -eo,"ifr &rfrttt^)

{ *:w/tir&,i+*;5
:ril,:---.-.
rili
::
liiT- -
----' -

1_'_i _ _ _

tiii
ii-i

You might also like