Anda di halaman 1dari 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? Y sus requisitos de clculo? Cuntos datos se asociarn por tarea? Cmo se comunican las tareas?
Dependencia de datos 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 p
n2

Particin unidimensional
n2 + n2 p

Particin 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.