Académique Documents
Professionnel Documents
Culture Documents
Foster, cap !
)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
;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)
<a=imi4ar el solapamiento(
10
$ma de n n%meros
Secuencial: t(n)=n-1
+asos: log n
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
+asos: log 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
+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(
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
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
N)u2 t(n)O
+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
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 memoria compartida:
n/(n/p+lo& p)p
En memoria compartida:
n/(n+p*lo& p)1
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)