Vous êtes sur la page 1sur 44

1

METODOLOGA DE LA PROGRAMACIN PARALELA


Anlisis de algoritmos paralelos
REFERENCIAS
La mayora de los libros de la bibliografa, en particular:

Foster, cap !

"umar, #rama, #upta, "arypis, cap $

%il&inson, Allen, cap '(! y '($

)uinn
y, por supuesto, el de Introducci*n a la +rogramaci*n
+aralela
2
Anlisis de algoritmos paralelos
Los procesadores paralelos se usan para acelerar la
resolucin de problemas de alto coste computacional.

La finalidad principal consiste en reducir el tiempo de
ejecucin:
si el tiempo secuencial t(n)
se intentar que usando p procesadores el tiempo
se reduzca a t(n)/p.
Ver algunas medidas que nos dan idea de la "bondad"
de un algoritmo paralelo.
3
Tiempo secencial

El tiempo de e,ecuci*n de un programa secuencial


depende de:
tama-o de la entrada,
compilador,
m./uina,
programador(((,
si nos ol0idamos de 0alores constantes dependientes del
sistema 1por e,emplo el coste de una operaci*n aritm2tica
en la m./uina donde e,ecutamos el programa3 podemos
considerar el tiempo funci*n del tama-o de la entrada:
t(n)(
El tiempo desde /ue empie4a la e,ecuci*n del programa
5asta /ue acaba(
4
Tiempo de e!ecci"n paralelo

En un programa paralelo la estimaci*n del tiempo es


m.s comple,a(
Adem.s de los par.metros anteriores, depende de:
n6mero de procesadores t(n,p),
de la manera en /ue est.n conectados entre s
1topologa3 y con los m*dulos de memoria 1memoria
compartida o distribuida3

Es el tiempo transcurrido desde /ue empie4a la


e,ecuci*n del primero de los procesadores 5asta /ue
acaba el 6ltimo de ellos(
5
Tiempo de e!ecci"n paralelo
7IFIC8L9A7ES:

No siempre es f.cil determinar el orden en /ue los


procesadores empie4an y acaban(

A lo largo de la e,ecuci*n de un programa paralelo 5ay


puntos de sincroni4aci*n de los /ue no siempre podemos
determinar su duraci*n al no saber en el orden en /ue
0an a llegar los distintos procesos a estos puntos(
6
Tiempo de e!ecci"n paralelo

Es/uema de programa paralelo:


Computaci*n :
Comunicaci*n : 1sincroni4aci*n en memoria compartida3
Computaci*n '
Comunicaci*n '
(((
t(n,p)=t
a
(n,p)+t
c
(n,p)
t
a
(n,p) : suma de los tiempos de las distintas partes de
computaci*n
t
c
(n,p) : suma de los tiempos de las distintas partes de
comunicaci*n
7
Tiempo de e!ecci"n paralelo# e!emplo

+rograma paralelo en dos procesadores:


Computaci*n : ' !
Comunicaci*n : : :
Computaci*n ' ! '
Comunicaci*n ' : :
t(n,p)=t
a
(n,p)+t
c
(n,p)=7 1si se suman los tiempo por separado3
t
real
(n,p)=t
a
(n,p)+t
c
(n,p)+t
overhead
(n,p)=8
8
Tiempo de e!ecci"n paralelo# e!emplo
' !
:
t(n,p)=t
a
(n,p)+t
c
(n,p)=15
t
real
(n,p)=t
a
(n,p)+t
c
(n,p)-t
solapamiento
(n,p)=14
9
Tiempo de e!ecci"n

;0er5ead debido a:
sincroni4aci*n,
puesta en marc5a de los procesos,
sobrecarga de la red de comunicaci*n,
(((

Se suele considerar:
t(n,p)=t
a
(n,p)+t
c
(n,p)+t
o
(n,p)-t
s
(n,p)

<inimi4ar el tiempo de o0er5ead(

<a=imi4ar el solapamiento(
10
$ma de n n%meros

Secuencial: t(n)=n-1

+aralelo con n/2 procesadores, como mnimo t(n)/(n/2)=2


En cada +
i
, i>?,:,(((,n@'A:
inicio>'Bi
despla4amiento>:
acti0o>true
para &>:,',(((,log n
si acti0o
aCinicioD>aCinicioDEaCinicioEdespla4amientoD
despla4amiento>despla4amientoB'
finsi
si i mod despla4amiento FG?
acti0o>false
finsi
finpara
11
$ma de n n%meros

+asos: log n

9raba,o adicional 1o0er5ead3:


Comprobaci*n de si el procesador traba,a,
8so de las 0ariables,
Actuali4aci*n de las 0ariables(

Con n>H$
si cada paso secuencial y paralelo igual coste:
t(n)8*t(n,p)
si cada paso secuencial coste ' y paralelo coste I:
t(n)35*t(n,p)
J en memoria distribuida problema de acceso a los datos(
12
$ma de n n%meros& En 'iperc(o

Cada procesador tiene dos 0alores, a y !


En cada +
i
, i>?,:,(((,n@'A:
despla4amiento>:
acti0o>true
para &>:,',(((,log nA:
si acti0o
a>aEb
despla4amiento>despla4amientoB'
si i mod despla4amiento FG?
acti0o>false
en0iar a a iAdespla4amiento@'
en otro caso
recibir en b de iEdespla4amiento@'
finsi
finsi
finpara
si i>?
a>aEb
finsi
13
$ma de n n%meros& En 'iperc(o
P0
6 5
P3
13 7
P1
5 3
P2
22 13
P0
0 1
P3
6 7
P1
2 3
P2
4 5
P0
1 1
P3
13 7
P1
5 3
P2
9 5
P0
1 5
P3
13 7
P1
5 3
P2
9 13
P0
6 22
P3
13 7
P1
5 3
P2
22 13
P0
28 22
P3
13 7
P1
5 3
P2
22 13
14
$ma de n n%meros& En 'iperc(o

+asos: log n

9raba,o adicional 1o0er5ead3:


Comprobaci*n de si el procesador traba,a,
8so de las 0ariables,
Actuali4aci*n de las 0ariables,
Comprobaci*n de en0iar o recibir,
En0o o recepci*n(

Con n>H$
si cada paso secuencial coste ' y paralelo coste K:
t(n)2,5*t(n,p)
si t
s
=2*t
"
y t
"
=2*t
c
:
t(n)1,5*t(n,p)
si t
s
=1#*t
"
y t
"
=1#*t
c
:
t(n)#,1$*t(n,p)
15
$ma de n n%meros& En malla
16
$ma de n n%meros& En malla

Si p=2
n
2*(1+2+2
2
++2
n/2-1
)= 2
n/2+1
comunicaciones

Con n>H$
si t
s
=2*t
"
y t
"
=2*t
c
:
t(n)1,4*t(n,p)
si t
s
=1#*t
"
y t
"
=1#*t
c
:
t(n)#,1*t(n,p)
17
$ma de n n%meros& En anillo

Si p=2
n
1+2+2
2
++2
n-1
= 2
n
L:> p-1 comunicaciones

Con n>H$
si t
s
=2*t
"
y t
"
=2*t
c
:
t(n)#,74*t(n,p)
si t
s
=1#*t
"
y t
"
=1#*t
c
:
t(n)#,#4*t(n,p)
18
Coste de comnicaciones

Son de los siguientes *rdenes:


Comunicaci*n 0ecinos Comunicaci*n todos
5ipercubo log p/2 log p/2
malla 2*%p log p/2
anillo p-1 log p/2
red p-1

Adem.s, la red puede estar congestionada al 5aber


muc5os mensa,es por 5aber muc5os procesadores(

+roblemas:
+roblema de poco coste y no apropiado para resol0er en
paralelo,
granularidad pe/ue-a, s*lo como ayuda para dise-ar un
programa pero no como programa final(
19
Casas de redcci"n de las prestaciones

Contenci*n de memoria:
En memoria compartida el acceso a datos comunes o /ue est.n en el
mismo blo/ue de memoria producir. contenci*n(
Si los datos son de lectura puede no 5aber ese problema(
En el e,emplo los procesadores escriben en 4onas distintas( No 5ay
problema de co5erencia, pero puede 5aber de contenci*n si 5ay datos
en los mismos blo/ues de memoria(

C*digo secuencial:
+uede 5aber parte imposible de paraleli4ar, como puede ser la I@;(
En el e,emplo la iniciali4aci*n de 0ariables( Adem.s, si los datos est.n
inicialmente en un procesador y 5ay /ue difundirlos el coste es lineal(

9iempo de creaci*n de procesos:


El programa empie4a a e,ecutarse con un proceso /ue pone en marc5a
los dem.s(
El coste de creaci*n de los procesos puede ser importante si la
granularidad de 2stos es pe/ue-a(
20
Casas de redcci"n de las prestaciones

Computaci*n e=tra:
Si se obtiene programa paralelo a partir de secuencial, son necesarias
computaciones adicionales por:
uso de 0ariables de control,
comprobaci*n de identificadores de proceso,
c.lculos adicionales o comunicaciones para obtener datos
calculados por otro procesador(((

Comunicaciones:
En memoria distribuida, es tiempo adicional al aritm2tico(
+ueden implicar traba,o de procesadores intermedios(

9iempo de sincroni4aci*n:
Cuando un proceso tiene /ue esperar a /ue est2n disponibles datos
procesados por otro(
Conlle0a comunicaciones en memoria distribuida(
21
Casas de redcci"n de las prestaciones

7esbalanceo de la carga:
El 0olumen total de la computaci*n no se distribuye por igual entre
todos los procesadores:
en el e,emplo, en el primer paso traba,an todos pero en los pasos
siguientes 0a disminuyendo el n6mero de procesadores /ue traba,an,
tambi2n es posible /ue partamos de una entrada /ue no se
puede balancear, por e,emplo si tenemos :' datos para M
procesadores,
o /ue el 0olumen de datos 0are a lo largo de la e,ecuci*n, con lo
/ue se necesitara balanceo din.mico(
22
Granlaridad de la comptaci"n

8so de muc5os procesadores no es realista:


No dispondremos de tantos procesadores(
Aun/ue dispongamos de ellos 5ay cada de las prestaciones(

La granularidad del sistema 1sistema fsicoEalgoritmo3 indica la


cantidad de computaci*n y datos asignados a cada procesador:
#rano fino: si a cada procesador se asignan pocos datos o se reali4a poca
computaci*n entre comunicaciones(
#rano grueso: si a cada procesador se asignan muc5os datos o se reali4a
muc5a computaci*n entre comunicaciones(

Interesa programaci*n paralela cuando el paralelismo es de


grano grueso( A partir de /u2 punto interesa depende de los costes
en el sistema 1no ser. lo mismo en saturno /ue en marteEmercurio3

En sist*licos y #+8s el paralelismo es de grano fino(



23
$ma de n n%meros con p procesadores
En cada +
i
, i>?,:,(((,pA:
suma>?
para ,>iBn@p, (((,1iE:3Bn@pA:
suma>sumaEaC,D
finpara
sincroni4aci*n
aCiD>suma
inicio>iB'
despla4amiento>:
si i mod '>?
acti0o>true
en otro caso
acti0o>false
finsi
para &>:,',(((,log pA:
si acti0o
aCinicioD>aCinicioDEaCinicioEdespla4amientoD
despla4amiento>despla4amientoB'
finsi
si i mod despla4amiento FG?
acti0o>false
finsi
finpara
24
$ma# en memoria distri(ida
En cada +
i
, i>?,:,(((,pA:
suma>?
para ,>?, (((,n@pA: suma>sumaEaC,D finpara
si i mod '>?
recibir en b de iE: acti0o>true
en otro caso
en0iar suma a iA: acti0o>false
finsi
despla4amiento>'
para &>:,',(((,log pA'
si acti0o
suma>sumaEb
despla4amiento>despla4amientoB'
si i mod despla4amiento FG?
acti0o>false
en0iar suma a iAdespla4amiento@'
en otro caso
recibir en b de iEdespla4amiento@'
finsi
finsi
finpara
si i>? suma>sumaEb finsi
25
$ma de n n%meros con p procesadores

En memoria compartida todas las 0ariables son locales


sal0o el array a(

En memoria distribuida la sincroni4aci*n por el paso de


mensa,es(

El tama-o del problema 1n3 es m6ltiplo del n6mero de


procesadores 1p3( Se puede generali4ar f.cilmente(

t(n,p)=2*n/p*t
c
+$*(lo& p-1)*(t
s
+t
"
)
si p'''n podemos tener en cuenta s*lo los t2rminos de
mayor orden y t(n)/t(n,p)=p, /ue es lo me,or /ue se puede
obtener
para ir :? 0eces m.s r.pido:
con t
s
=2*t
"
y t
"
=2*t
c
,
si n>:??????, :?????, :????, p>:?
con t
s
=1#*t
"
y t
"
=1#*t
c
, es n=33#*p*lo& p
si n>:?????? p>:?, :????? p>::, :???? no posible
26
$peed)p

<ide la ganancia de 0elocidad /ue se obtiene con un programa


paralelo(

Es el cociente entre el tiempo secuencial y el paralelo:


((n,p)=t(n)/t(n,p)

N)u2 t(n)O

El del me,or algoritmo secuencial /ue resuel0e el


problema, pero Ncu.l es el Pme,or algoritmo secuencialQO
depende del tama-o de la entrada, distribuci*n de los datos,
m./uina(((, y puede no conocerse 1+or e,emplo, Ncu.l es el
coste de la multiplicaci*n de matricesO3(

El del me,or algoritmo secuencial conocido( +ero depende


de los mismos par.metros anteriores(

9iempo de e,ecuci*n en un procesador del algoritmo


paralelo( +ero puede /ue el me,or es/uema para paraleli4ar
no sea bueno en secuencial(

El tiempo de e,ecuci*n de un algoritmo secuencial


Pra4onablemente buenoQ( Rabr. /ue indicar cu.l se usa(
27
$peed)p

El speedAup ser. menor /ue el n6mero de procesadores


usado( Si no podra 5acerse un algoritmo secuencial me,or
/ue el /ue se usa, simulando el algoritmo paralelo(

En algunos casos puede 5aber speedAup superlineal por


me,or gesti*n de la memoria al usar m.s procesadores(

+ara un tama-o de
problema fi,o se ale,a
del 0alor *ptimo al
aumentar el n6mero
de procesadores(

+ara un n6mero de
procesadores fi,o
aumenta al aumentar
el tama-o del
problema(
?
I
:?
:I
'?
'I
!?
!I
$?
:??? '??? !??? $??? I???
p>:?
p>'?
p>!?
p>$?
p>I?
28
$peed)p# sma con n*+ procesadores

En memoria compartida:
n/lo& n

En 5ipercubo, y malla o anillo con comunicaciones


directas:
n/((1+t
s
+t
"
)*lo& n)

En malla sin comunicaciones directas:


n/(lo& n+(t
s
+t
"
)*2*%n)

En anillo sin comunicaciones directas y en red:


n/(lo& n+(t
s
+t
"
)*n)1/(t
s
+t
"
)
29
E,iciencia

7a idea de la porci*n de tiempo /ue los procesadores se


dedican a traba,o 6til(

Es el speedAup partido por el n6mero de procesadores:


)(n,p)=((n,p)/p=t(n)/(p*t(n,p))

Salor entre ? y :(
+ara un tama-o de
problema fi,o se ale,a
del 0alor *ptimo 1:3 al
aumentar el n6mero
de procesadores(

+ara un n6mero de
procesadores fi,o
aumenta al
aumentar el tama-o
del problema(
?
?,:
?,'
?,!
?,$
?,I
?,H
?,K
?,M
?,T
:
:??? '??? !??? $??? I???
p>:?
p>'?
p>!?
p>$?
p>I?
30
E,iciencia# sma con n*+ procesadores

En memoria compartida:
2/lo& n#

En 5ipercubo, y malla o anillo con comunicaciones


directas:
2/((1+t
s
+t
"
)*lo& n)#

En malla sin comunicaciones directas:


2/(lo& n+(t
s
+t
"
)*2*%n)#

En anillo sin comunicaciones directas y en red:


2/(lo& n+(t
s
+t
"
)*n)#
31
$peed)p# sma con p procesadores
Con p fi,o

En memoria compartida:
n/(n/p+lo& p)p

En 5ipercubo, y malla o anillo con comunicaciones


directas:
n/(n/p+(1+t
s
+t
"
)*lo& p)p

En malla sin comunicaciones directas:


n/(n/p+lo& p+(t
s
+t
"
)*2*%p)p

En anillo sin comunicaciones directas y en red:


n/(n/p+lo& p+(t
s
+t
"
)*p)p
32
E,iciencia# sma con p procesadores
Con p fi,o

En memoria compartida:
n/(n+p*lo& p)1

En 5ipercubo, y malla o anillo con comunicaciones


directas:
n/(n+(1+t
s
+t
"
)*p*lo& p)1

En malla sin comunicaciones directas:


n/(n+p*lo& p+(t
s
+t
"
)*2*p*%p)1

En anillo sin comunicaciones directas y en red:


n/(n+p*lo& p+(t
s
+t
"
)*p
2
)1
33
Coste

Representa el tiempo 1el traba,o3 reali4ado por todo el


sistema en la resoluci*n del problema(

Es el tiempo de e,ecuci*n por el n6mero de procesadores


usados:
*(n,p)=p*t(n,p)

En algoritmo *ptimo coincidira con el tiempo secuencial, pero


en general es mayor(
La diferencia se llama funci*n o0er5ead:
t
o
(n,p)=*(n,p)-t(n)=p*t(n,p)-t(n)
Es distinto de la idea de o0er5ead 0ista anteriormente y
difcilmente medible(
34
Distri(ci"n del tra(a!o

Es importante para me,orar el balanceo(

En memoria distribuida puede reducir el coste de las


comunicaciones asignando datos /ue se comunican
frecuentemente a procesadores 0ecinos(
E0ita comunicaciones, congesti*n de la red y colisiones(

En memoria compartida puede influir en el coste de los


accesos a memoria, si procesadores distintos acceden a
blo/ues distintos( Normalmente /ue los procesadores
accedan a blo/ues de datos( Esto adem.s me,ora el uso de
la ,erar/ua de memoria(
35
Distri(ci"n de datos& $ma de n n%meros& En
malla
0
1 2 3
4 5 6 7
8 9 10 11
12 13 14 16
36
Distri(ci"n de datos& $ma de n n%meros& En
anillo
0 1 2 3 4 5 6 7
7 comunicaciones
5 comunicaciones
37
Escala(ilidad

+ara un sistema paralelo interesa /ue las prestaciones se sigan


manteniendo en cierta medida al aumentar el tama-o de sistema(

No se puede seguir manteniendo las prestaciones manteniendo


el tama-o del problema fi,o y aumentando el n6mero de
procesadores(

Se tratar. de mantener las prestaciones al aumentar el tama-o


del sistema pero aumentando el tama-o del problema( Los
sistemas 1fsicos o l*gicos3 /ue cumplen esto se dicen
escalables(

La idea es, para un determinado programa, ser capaces de


determinar si en el futuro, cuando aumente el n6mero de
procesadores y el tama-o de problemas /ue se /uieren resol0er,
se seguir.n manteniendo las prestaciones(
38
-nci"n de isoe,iciencia

7a idea de c*mo debe crecer la entrada del problema


en funci*n del n6mero de procesadores para mantener la
eficiencia constante(
t
o
(n,p)=p*t(n,p)-t(n)
t(n,p)=(t
o
(n,p)+t(n))/p
)(n,p)=t(n)/(t
o
(n,p)+t(n))
t(n)=()(n,p)/(1-)(n,p))*t
o
(n,p)=+*t
o
(n,p)
+ara obtener c*mo debe crecer n en funci*n de p para
mantener la eficiencia constante basta comparar el tiempo
secuencial con la funci*n o0er5ead del paralelo(
39
Isoe,iciencia# sma con p procesadores
Sin constantes, pues interesa la forma en /ue crece

En memoria compartida, 5ipercubo, y malla o anillo con


comunicaciones directas :
t(n)=n t
o
(n,p)=n+p*lo& p
Funci*n de isoeficiencia: p*lo& p

En malla sin comunicaciones directas:


t(n)=n t
o
(n,p)=n+p*lo& p+p*%p
Funci*n de isoeficiencia: p
15
1la mayor3

En anillo sin comunicaciones directas y en red:


t(n)=n t
o
(n,p)=n+p*lo& p+ p
2
Funci*n de isoeficiencia: p
2
1la mayor3
40
Isoe,iciencia# sma con p procesadores
+ara mantener las prestaciones al 0ariar de p1 a p2
procesadores, el tama-o debe aumentar proporcional a
,(p2)/,(p1)
+rocesadores: $ a :H :H a H$ H$ a 'IH
memoria compartida,
5ipercubo, y malla o anillo M H I(!!
con comunicaciones
directas
malla sin M M M
comunicaciones directas
anillo sin comunicaciones :H :H :H
directas y en red
9odos escalables( 8nos m.s /ue otros(
41
$peed)p escalado

Representa la relaci*n entre el tiempo de e,ecuci*n


secuencial y el paralelo, pero aumentando
proporcionalmente el n6mero de procesadores:
(
e
(n,p)=t(n)*p/t(n*p,p)

En 5ipercubo:
(
e
(n,p)=n*p/(n+(1+t
s
+t
"
)*lo& p)

En malla:
(
e
(n,p)=n*p/(n+(t
s
+t
"
)*%p+lo& p)

El de 5ipercubo es m.s escalable pues su cociente es


menor(
42
Estdio e.perimental de la escala(ilidad

Se estudia el n6mero de operaciones por segundo


1flops3 por procesador:
Sariando el tama-o de la entrada al 0ariar el n6mero de
procesadores,
; utili4ando el m.=imo tama-o de la entrada /ue cabe en
la memoria del sistema
buena escalabilidad peor
proc
tam flops
1
100 100
5 500 99
25
2500 96
125
12500 91
proc
tam flops
1
100 100
5
500 102
25
2500 90
125
12500 46
43
Estdio e.perimental

7ise-o de e=perimentos /ue nos permitan obtener


conclusiones:
A
7eterminar /u2 tipo de conclusiones se /uiere obtener: en
cuanto a speedAup, escalabilidad(
A 7efinir el rango de los e=perimentos: n6mero de
procesadores y tama-o del problema(
A
Comparar los resultados e=perimentales con los te*ricos(
A
Si no coinciden re0isar los estudios te*ricos o la forma en
/ue se 5an 5ec5o los e=perimentos(

+ueden consistir en:


A
Estudiar el programa completo(
A
Estudiar el comportamiento en los distintos procesadores:
Nbalanceo de la cargaO Nsincroni4aci*nO (((
A 7i0idir el programa en partes para estudiarlas por separado(
Ray 5erramientas de an.lisis: profilers, gr.ficas, Stune, <+E(((
44
Comparaci"n estdio te"rico)e.perimental

Se pueden estimar los 0alores constantes en las f*rmulas


te*ricas:
A
En particular t
s
y t
"
se obtienen con un pingApong, o
pueden tener 0alores distintos para distintas operaciones
de comunicaci*n(
A
El coste de la computaci*n se puede estimar e,ecutando
parte del programa en un procesador(

A,uste del modelo te*rico con datos e=perimentales:


A
;btener 0alores constantes en el estudio te*rico
5aciendo a,uste de mnimos cuadrados con resultados
e=perimentales(
A
Estudio asint*tico: comportamiento teniendo en cuenta el
t2rmino de mayor orden de la f*rmula te*rica, compararlo
con la gr.fica e=perimental(

Vous aimerez peut-être aussi