Está en la página 1de 50

AT5128 Arquitectura e Ingeniera de Computadores II

Juan Antonio Maestro (2004/05)

Diseo de algoritmos paralelos

Curso 2011-2012
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Esquema del captulo


Visin general de algunos algoritmos serie.
Algoritmo paralelo vs. Formulacin
paralela
Elementos de un Algoritmo paralelo
Mtodos de descomposicin:
Extraccin de la concurrencia.
Mtodos de asignacin:
Reduccin de las comunicaciones por paralelismo.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Algunos algoritmos serie

Multiplicacin de matrices densas.


Multiplicacin de matrices dispersas.
Eliminacin Gausiana.
Camino ms corto (algoritmo de Floyd).
Quicksort (ordenacin rpida).
Bsqueda de mximos y mnimos.
Bsqueda heurstica (problema del puzzle).
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Multiplicacin densa Matriz - Vector


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Multiplicacin densa Matriz - Matriz


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Multiplicacin Matriz dispersa - Vector


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Eliminacin Gausiana

La matriz A de un sistema de ecuaciones se reemplaza por una


matriz equivalente triangular superior
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Camino ms corto (algoritmo de Floyd)


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Quicksort
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Bsqueda del mnimo


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Puzzle de 15 piezas
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Algoritmo paralelo vs. Formulacin paralela


Formulacin paralela: Paralelizacin de un
algoritmo serie ya diseador. Adaptacin a una
plataforma paralela.
Algoritmo paralelo: Algoritmo que se disea en
un inicio pensando en una plataforma paralela.
Puede diferir considerablemente de su versin
serie.

En el curso, se trabajar principalmente con


Formulaciones paralelas.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Elementos de un algoritmo / formulacin paralelo

Elementos de trabajo que se pueden ejecutar


concurrentemente: Tareas.
Asignacin de tareas a mltiples procesadores.
Distribucin de la informacin (datos de entrada-salida
e intermedios) entre los procesadores.
Gestin del acceso a datos compartidos.
Sincronizacin de los procesos.

Maximizar la concurrencia y minimizar costes


de comunicacin: Mejorar el Speed-up.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Bsqueda de elementos de trabajo concurrentes

Descomposicin: Proceso de divisin del


trabajo en unidades menores y ms manejables
denominadas tareas.
Las tareas se definen a nivel de programacin y
se consideran indivisibles.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplo: Multiplicacin Matriz densa - Vector

Granularidad: Nmero y tamao de las tareas.


Granularidad fina: Muchas tareas detalladas.
Granularidad gruesa: Pocas tareas genricas.
Descomposicin en n tareas Descomposicin en 4 tareas
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplo: Proceso de bsqueda


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplo: Proceso de bsqueda


Dos descomposiciones de tareas, con resultados muy diferentes:
(a) Tres etapas de proceso, con un grado de concurrencia mximo de
4.
b) Cuatro etapas de proceso, con un grado de concurrencia mximo
de 4.

(a) (b)
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Grafo de dependencia de tareas


En la mayora de los casos, las tareas tienen
dependencias. No pueden empezar hasta que no acaben
las predecesoras.
Estas dependencias se representan mediante un grafo
dirigido acclico, denominado Grafo de Dependencia
de Tareas.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Grafo de dependencia de tareas

Grado medio de concurrencia: Nmero medio


de tareas que se pueden ejecutar
concurrentemente.
Camino crtico: El camino ms largo que recorre
el grafo, el cual delimita el tiempo de ejecucin
total del algoritmo.
Tanto el grado de concurrencia como el camino
crtico se ven directamente afectados por la
eleccin de la granularidad.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Grafo de interaccin de tareas

Muestra los patrones de interaccin de las tareas.


Suele contener al grafo de dependencias de tareas
como un subgrafo propio.

Multiplicacin de matriz dispersa


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Mtodos habituales de descomposicin

Descomposicin de datos.
Descomposicin recursiva.
Descomposicin exploratoria.
Descomposicin especulativa.
Descomposicin hbrida.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Descomposicin recursiva

Apropiado para problemas resolubles


con la tcnica Divide-y-vencers.
Cada uno de los subproblemas
generados en el proceso de divisin se
corresponde con un proceso.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplo: Quicksort

Cada paso de divisin se


asocia a un proceso.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplo: Clculo del mnimo


Se puede aplicar la estrategia de divide-y-vencers a problemas
que tradicionalmente no se han resuelto con esta tcnica.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Descomposicin de datos

Apropiado para algoritmos que trabajan con


una gran cantidad de datos: el problema est
en el volumen.
Habitualmente se realiza en dos etapas:
Particin de los datos.
Cambio en la computacin para trabajar con mltiples
particiones de datos.
Qu datos hay que dividir en particiones (los de
entrada, los intermedios)?: Depende del caso.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplo: Multiplicacin de matrices

Particin de los datos de salida:


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplo: Multiplicacin de matrices

Particin de los datos intermedios:

Grafo de dependencias de datos


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Descomposicin exploratoria

Apropiado para descomponer clculos


basados en la bsqueda de un espacio
de soluciones.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Descomposicin exploratoria
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Descomposicin exploratoria
Puede resultar en speed-up anmalo:
Dependiendo de dnde se encuentre la solucin
dentro del espacio, la formulacin paralela puede
requerir ms trabajo que la formulacin serie.

Speed-up anmalo debido a descomposicin exploratoria


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Descomposicin especulativa
Usada para extraer concurrencia en
problemas donde el prximo paso es una
accin (entre varias posibles), que slo se
puede determinar cuando la tarea actual
concluya.
Esta descomposicin asume un cierto
resultado de la tarea actual y ejecuta los
pasos posteriores.
Equivalente a la ejecucin especulativa a nivel de
microprocesador
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplos: Simulacin discreta de eventos


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Descomposicin especulativa

Si la prediccin es errnea:
el trabajo realizado se desperdicia
puede que haya que deshacer los resultados de la
tarea (restauracin de contexto)
A menudo, puede ser el nico medio para
obtener concurrencia.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Asignacin de tareas

Por qu una asignacin de tareas? No es


suficiente una asignacin aleatoria?
La asignacin apropiada es crtica, a fin de
minimizar el coste asociado al paralelismo.
Coste = pTp - Ts.
Causas del coste:
Carga de trabajo no equilibrada.
Comunicacin entre procesos.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Asignacin de tareas

Para una correcta asignacin hay que


estudiar los grafos de dependencia e
interaccin de tareas:
Se conocen las tareas a priori?
Dependencia
Y sus requisitos de clculo?
de datos
Cuntos datos se asociarn por tarea?
Cmo se comunican las tareas? Interaccin
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplos: Interaccin simple y compleja

Interaccin simple: Las


tareas se comunican slo
con las adyacentes

Interaccin compleja:
Las tareas necesitan
mucha comunicacin
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Objetivo: Equilibrado de carga


El equilibrado de carga es fundamental para
maximizar la concurrencia.
Una asignacin equitativa de tareas a
procesadores no garantiza el equilibrado de
carga.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Tcnicas de equilibrado de carga


Asignacin esttica:
Las tareas se distribuyen entre los procesadores antes de la
ejecucin.
Aplicable a tareas:
Generadas estticamente
Con requisitos computaciones conocidos
Asignacin dinmica:
Las tareas se distribuyen entre los procesadores en tiempo de
ejecucin.
Aplicable a tareas:
Generadas dinmicamente
Con requisitos computaciones desconocidos
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Tcnicas de equilibrado de carga

Asignacin esttica:
Distribucin en array
Particionamiento del grafo

Asignacin dinmica:
Patrones centralizados
Patrones distribuidos
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Asignacin esttica: Distribucin en array

Apropiada para algoritmos:


que usan descomposicin de datos
sus datos se almacenan en forma de arrays
Tipos:
Distribucin en bloques
Distribucin cclica
Distribucin cclica en bloques
Distribucin aleatoria en bloques
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplo: Distribuciones en bloques

8 procesos

16 procesos
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplo: Distribuciones en bloques

n2 n2
Particin
p
unidimensional
n2
+ n2
p

Particin
2 2
n n
p p
bidimensional
2n 2
p

Los datos de las zonas sombreadas A y B son requeridos por el proceso que
calcula la zona sombreada C. La particin unidimensional requiere ms acceso a
datos que la bidimensional.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Ejemplo: Distribuciones cclicas en bloques


Se usa para evitar problemas de desequilibrio de carga cuando
distintas partes del array necesitan carga computacional distinta.
Se divide el array en ms bloques que procesadores.
Cada procesador se encarga de varios bloques no contiguos.

Ej.: Eliminacin Gausiana. Distribuciones uni y


bidimensionales sobre 4
procesos
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Distribuciones aleatorias en bloques


Algunas veces, la computacin se realiza nicamente
sobre ciertas partes del array:
por ejemplo, en la multiplicacin de matrices dispersas.

El uso de distribucin
cclica en bloques llevara
a un desequilibrio de
carga
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Distribuciones en bloques aleatorios

Distribucin aleatoria
unidimensional

Distribucin aleatoria bidimensional: Mejor equilibrado de carga.


AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Particionamiento del grafo


La asignacin de procesos se puede
conseguir particionando directamente el
grafo de interaccin de tareas.
Ejemplo: Modelado basado en clculos sobre malla.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Particionamiento del grafo

Distribucin aleatoria en
8 procesos
Carga equidistribuida

Distribucin en 8 procesos
usando un algoritmo de
particionamiento de grafos
Carga equidistribuida
+
Minimizacin de comunicaciones
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Particionamiento del grafo


Otro ejemplo: Multiplicacin de matriz dispersa
Asignacin contigua,
Cada proceso se
ocupa de 4 filas
consecutivas

Asignacin que minimiza las


comunicaciones y mantiene
las misma carga
computacional por proceso
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Patrones de equilibrado dinmico de carga

Tema de mxima actualidad a nivel de


investigacin.
Patrones centralizados:
Un cierto procesador es responsable de repartir el
trabajo.
Patrones distribuidos:
El trabajo se puede distribuir entre cualquier par de
procesadores.
AT5128 Arquitectura e Ingeniera de Computadores II
Juan Antonio Maestro (2004/05)

Asignacin para minimizar los costes de interaccin

Maximizar ubicacin conjunta de datos.


Minimizar volumen de intercambio de datos.
Minimizar frecuencia de interaccin.
Minimizar contencin y hot spots.
Solapar computacin y comunicacin.
Rplica selectiva de datos y clculo.

Estos objetivos se consiguen con una buena


descomposicin y asignacin de tareas.

También podría gustarte