PDF de programación - Algoritmos en paralelo

Imágen de pdf Algoritmos en paralelo

Algoritmos en paralelográfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 7 de Marzo del 2018)
908 visualizaciones desde el 7 de Marzo del 2018
302,6 KB
24 paginas
Creado hace 12a (01/05/2011)
Análisis de Algoritmos

CB-102

Algoritmos en Paralelo

Centro de Manufactura / Centro de Sistema Inteligentes

ITESM

Algoritmos en Paralelo

TC-4001 - p. 1/22

Paralelismo

n Hasta este punto, nuestro modelo de

computación ha sido el de una computadora de
propósito general, determinística, acceso a
memoria aleatorio, que realiza una sola
operación a la vez.

n Usaremos el término algoritmo secuencial para

los algoritmos de un paso a la vez que hemos
estudiado hasta ahora.

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 2/22

n Hay situaciones donde algunos cálculos de una
tarea son relativamente independientes entre si;
dichos cálculos podrían realizarse
simultáneamente, es decir, en paralelo.

n El propósito de este capítulo es introducir

algunos de los conceptos, modelos formales, y
técnicas para el análisis de algoritmos donde es
posible ejecutar varias operaciones en paralelo,
es decir, algoritmos para máquinas que tienen
más de un procesador trabajando en un mismo
problema a la vez. Algoritmos Paralelos

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 3/22

n Los algoritmos paralelos son naturales en

muchas aplicaciones:
u Procesamiento de imágenes
u Sistema de búsqueda
u Evaluaciones de soluciones factibles en

problemas de optimización

n Al disminuir el precio de los microprocesadores y
al mejorar la tecnología para interconectarlos se
ha vuelto posible y práctico construir
computadoras con un gran número de
procesadores. Para ver la tendencia del
paralelismo en las supercomputadoras actuales
visitar el sitio:
u http://www.top500.org/

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 4/22

Modelo utópico: PRAM

Parallel Random Access Machine

n p procesadores
n P1, P1,. . . , Pp, conectados a una memoria

compartida M.

n Cada procesador tiene una memoria local.
n Toda la comunicación entre los procesadores se

lleva a cabo vía la memoria compartida.

n El input se encuentra en las primeras n celdas

de la memoria.

n El output se escribe apartir de la primera celda.
n Todas las celdas de memoria sin input tienen un

0.

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 5/22

n Cada paso tiene tres fases:

1. Lectura
2. Cálculo
3. Escritura

n Todos los procesadores ejecutan el mismo

programa y saben cual es su índice (identificador
de procesador o pid).

n Procesadores PRAM están sincronizados:

Empiezan cada paso al mismo tiempo; y todos
los que tiene que escribir lo hacen al mismo
tiempo.

n Los procesadores pueden leer la misma posición

de memoria concurrentemente.

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 6/22

Conflictos de Escritura: Modelos

n CREW (Concurrent Read, Exclusive Write): Sólo

un procesador puede escribir en una celda
particular en un paso dado.

n CRCW (Concurrent Read, Common Write):
Varios procesadores pueden escribir en una
celda particular en un paso dado, siempre y
cuando escriban el mismo valor.

n CRPW (Concurrent Read, Priority Write): Si

varios procesadores tratan de escribir en una
celda al mismo tiempo, gana el de menor índice.

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 7/22

Complejidad

La Clase de Nick (Nicholas Pippenger): N C

Clase de problemas que pueden ser resueltos por
un algoritmo en paralelo donde el número de
procesadores p está acotado por un polinomio en
el tamaño del input y el número de pasos F está
acotado por un polinomio en el logaritmo del
tamaño del input.

p(n) ∈ O(nk)

F (n) ∈ O((log (n))m)

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 8/22

Medidas

n T (n): tiempo requerido por el mejor algoritmo

secuencial conocido

n Tp(n): tiempo que toma un algoritmo paralelo

usando p procesadores

n Sp: speed-up ratio con respecto al mejor

algoritmo secuencial:

n Ep: Eficiencia

Sp =

Tp(n)
T (n)

Ep =

Sp
p

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 9/22

Comentarios

Ley de Amdahl (versión texto interpretada):

Finalmente, es el algoritmo el que decide el
factor de aceleración y no el número de
procesadores.

El problema de ponerse los zapatos:

Si tuviera 4 brazos podría reducirse el tiempo
a la mitad poniendo dos brazos a cada
zapato; pero teniendo mas de 4 brazos no
disminuye el tiempo.

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 10/22

Obtención del máximo de un arreglo

n Idea: Torneo en paralelo.
n Forma de ejecución: Competir por pares:

eliminatoria hasta llegar a las finales donde se
elige al ganador.

n Tiempo de ejecución ⌈log2(n)⌉ competencias en

paralelo

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 11/22

Código para cada procesador:

read M [pid] into big;
incr = 1;
write −∞ into M [n + pid];
for step = 1 to ⌈log n⌉

torneoMaxParalelo(M,n)
1.
2.
3.
4.
5.
6.
7.
8.
9.

read M [pid + incr] into temp;
big = max(big, temp);
incr = 2 ∗ incr ;
write big into M [pid];

end

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Este algoritmo emplea CREW de manera que no
hay conflictos de escritura.

Algoritmos en Paralelo

TC-4001 - p. 12/22

Afirmación:

Al término de la iteración t en el ciclo del for:
n incr = 2t
n Para cualquier 0 ≤ pid < 2⌈n⌉:

M [pid] contiene el máximo de los
contenidos iniciales de

M [pid], M [pid + 1], . . . , M [pid + incr − 1]

Por tanto, para t = ⌈log n⌉ y para pid = 0 se
tendría que M [0] contendría el máximo de
los contenidos iniciales de

M [0], M [1], . . . , M [n − 1]

Por tanto: El problema de encontrar el máximo de
n números está en N C.

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 13/22

Tarea (Parte I)

Modifique el algoritmo previo para
n encontrar el mínimo de n números
n calcular el or y and de n bits
n calcular la suma de n números

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 14/22

Multiplicación de Matrices

Consideremos el problema de multiplicación de
dos matrices A y B (n × n). Recordemos que si

entonces

C = A B

cij =

n

X

k=1

aik bkj

Idea del algoritmo:
Asignar un procesador a cada elemento del
producto, usando n2 procesadores. Cada
procesador Pij calcula su cij en 2n pasos (n
productos y n − 1 sumas).

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 15/22

Tarea (Parte II)

Note que el algoritmo anterior para el cálculo del
producto de matrices no prueba que el problema
está en la clase de Nick: 2 n (tiempo de ejecución)
no es poli-log en 2 n2 (tamaño de la entrada).
Para probar que efectivamente está en N C, habrá
que proveer de otro algoritmo que aunque quizá
use más procesadores reduzca el tiempo de
ejecución.

Tarea

Indique un algoritmo para hacer el cálculo de
dos matrices n × n que use Θ(n3)
procesadores y que ejecute en tiempo
O(log(n)).

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 16/22

Potenciando el Manejo de Escritura

Utilizando el esquema anterior (Abanico de
Entrada Binario) el problema se resuelve en
tiempo Θ(log n). Este método funciona en todos
los modelos por que no hay conflicto de escritura.
Pero puede rerolverse más rápido con otro
esquema de manejo de conflictos de escritura: Or
booleano de n bits en tiempo constante.

Paralelismo
PRAM
Conflictos de
Escritura
Complejidad
Medidas
Comentarios
Ejemplo 1
Tarea parte I
Ejemplo 2
Tarea parte II
Or Booleano
Max
Mezcla de listas
Tarea Parte III

Algoritmos en Paralelo

TC-4001 - p. 17/22

Potenciando el Manejo de Escritura

Utilizando el esquema anterior (Abanico de
Entrada Binario) el problema se resuelve en
tiempo Θ(log n). Este método funciona en todos
los modelos por que no hay conflicto de escritura.
Pero puede rerolverse más rápido con otro
esquema de manejo de conflictos de escritura: Or
booleano de n bits en tiempo constante.

Input: Bits x1, x2, . . . , xn, en M[1], M[2],. . . , M[n]
Output x1 ∨ x2 ∨ . . . xn en M[1]

Paralelismo
PRAM
Conflictos de
  • Links de descarga
http://lwp-l.com/pdf9290

Comentarios de: Algoritmos en paralelo (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad