14.01.2015 Views

Diseño de algoritmos paralelos

Diseño de algoritmos paralelos

Diseño de algoritmos paralelos

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Diseño <strong>de</strong> <strong>algoritmos</strong> <strong>paralelos</strong><br />

Curso 2011-2012


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Esquema <strong>de</strong>l capítulo<br />

• Visión general <strong>de</strong> algunos <strong>algoritmos</strong> serie.<br />

• Algoritmo paralelo vs. Formulación<br />

paralela<br />

• Elementos <strong>de</strong> un Algoritmo paralelo<br />

• Métodos <strong>de</strong> <strong>de</strong>scomposición:<br />

– Extracción <strong>de</strong> la concurrencia.<br />

• Métodos <strong>de</strong> asignación:<br />

– Reducción <strong>de</strong> las comunicaciones por paralelismo.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Algunos <strong>algoritmos</strong> serie<br />

• Multiplicación <strong>de</strong> matrices <strong>de</strong>nsas.<br />

• Multiplicación <strong>de</strong> matrices dispersas.<br />

• Eliminación Gausiana.<br />

• Camino más corto (algoritmo <strong>de</strong> Floyd).<br />

• Quicksort (or<strong>de</strong>nación rápida).<br />

• Búsqueda <strong>de</strong> máximos y mínimos.<br />

• Búsqueda heurística (problema <strong>de</strong>l puzzle).


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Multiplicación <strong>de</strong>nsa Matriz - Vector


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Multiplicación <strong>de</strong>nsa Matriz - Matriz


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Multiplicación Matriz dispersa - Vector


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Eliminación Gausiana<br />

La matriz A <strong>de</strong> un sistema <strong>de</strong> ecuaciones se reemplaza por una<br />

matriz equivalente triangular superior


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Camino más corto (algoritmo <strong>de</strong> Floyd)


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Quicksort


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Búsqueda <strong>de</strong>l mínimo


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Puzzle <strong>de</strong> 15 piezas


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Algoritmo paralelo vs. Formulación paralela<br />

• Formulación paralela: Paralelización <strong>de</strong> un<br />

algoritmo serie ya diseñador. Adaptación a una<br />

plataforma paralela.<br />

• Algoritmo paralelo: Algoritmo que se diseña en<br />

un inicio pensando en una plataforma paralela.<br />

Pue<strong>de</strong> diferir consi<strong>de</strong>rablemente <strong>de</strong> su versión<br />

serie.<br />

• En el curso, se trabajará principalmente con<br />

Formulaciones paralelas.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Elementos <strong>de</strong> un algoritmo / formulación paralelo<br />

• Elementos <strong>de</strong> trabajo que se pue<strong>de</strong>n ejecutar<br />

concurrentemente: Tareas.<br />

• Asignación <strong>de</strong> tareas a múltiples procesadores.<br />

• Distribución <strong>de</strong> la información (datos <strong>de</strong> entrada-salida<br />

e intermedios) entre los procesadores.<br />

• Gestión <strong>de</strong>l acceso a datos compartidos.<br />

• Sincronización <strong>de</strong> los procesos.<br />

• Maximizar la concurrencia y minimizar costes<br />

<strong>de</strong> comunicación: Mejorar el Speed-up.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Búsqueda <strong>de</strong> elementos <strong>de</strong> trabajo concurrentes<br />

• Descomposición: Proceso <strong>de</strong> división <strong>de</strong>l<br />

trabajo en unida<strong>de</strong>s menores y más manejables<br />

<strong>de</strong>nominadas tareas.<br />

• Las tareas se <strong>de</strong>finen a nivel <strong>de</strong> programación y<br />

• Las tareas se <strong>de</strong>finen a nivel <strong>de</strong> programación y<br />

se consi<strong>de</strong>ran indivisibles.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplo: Multiplicación Matriz <strong>de</strong>nsa - Vector<br />

• Granularidad: Número y tamaño <strong>de</strong> las tareas.<br />

• Granularidad fina: Muchas tareas <strong>de</strong>talladas.<br />

• Granularidad gruesa: Pocas tareas genéricas.<br />

Descomposición en n tareas<br />

Descomposición en 4 tareas


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplo: Proceso <strong>de</strong> búsqueda


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplo: Proceso <strong>de</strong> búsqueda<br />

Dos <strong>de</strong>scomposiciones <strong>de</strong> tareas, con resultados muy diferentes:<br />

(a) Tres etapas <strong>de</strong> proceso, con un grado <strong>de</strong> concurrencia máximo <strong>de</strong><br />

4.<br />

b) Cuatro etapas <strong>de</strong> proceso, con un grado <strong>de</strong> concurrencia máximo<br />

<strong>de</strong> 4.<br />

(a)<br />

(b)


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Grafo <strong>de</strong> <strong>de</strong>pen<strong>de</strong>ncia <strong>de</strong> tareas<br />

• En la mayoría <strong>de</strong> los casos, las tareas tienen<br />

<strong>de</strong>pen<strong>de</strong>ncias. No pue<strong>de</strong>n empezar hasta que no acaben<br />

las pre<strong>de</strong>cesoras.<br />

• Estas <strong>de</strong>pen<strong>de</strong>ncias se representan mediante un grafo<br />

dirigido acíclico, <strong>de</strong>nominado Grafo <strong>de</strong> Depen<strong>de</strong>ncia<br />

<strong>de</strong> Tareas.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Grafo <strong>de</strong> <strong>de</strong>pen<strong>de</strong>ncia <strong>de</strong> tareas<br />

• Grado medio <strong>de</strong> concurrencia: Número medio<br />

<strong>de</strong> tareas que se pue<strong>de</strong>n ejecutar<br />

concurrentemente.<br />

• Camino crítico: El camino más largo que recorre<br />

el grafo, el cual <strong>de</strong>limita el tiempo <strong>de</strong> ejecución<br />

total <strong>de</strong>l algoritmo.<br />

• Tanto el grado <strong>de</strong> concurrencia como el camino<br />

crítico se ven directamente afectados por la<br />

elección <strong>de</strong> la granularidad.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Grafo <strong>de</strong> interacción <strong>de</strong> tareas<br />

• Muestra los patrones <strong>de</strong> interacción <strong>de</strong> las tareas.<br />

• Suele contener al grafo <strong>de</strong> <strong>de</strong>pen<strong>de</strong>ncias <strong>de</strong> tareas<br />

como un subgrafo propio.<br />

Multiplicación <strong>de</strong> matriz dispersa


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Métodos habituales <strong>de</strong> <strong>de</strong>scomposición<br />

• Descomposición <strong>de</strong> datos.<br />

• Descomposición recursiva.<br />

• Descomposición exploratoria.<br />

• Descomposición especulativa.<br />

• Descomposición híbrida.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Descomposición recursiva<br />

• Apropiado para problemas resolubles<br />

con la técnica Divi<strong>de</strong>-y-vencerás.<br />

• Cada uno <strong>de</strong> los subproblemas<br />

generados en el proceso <strong>de</strong> división se<br />

correspon<strong>de</strong> con un proceso.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplo: Quicksort<br />

Cada paso <strong>de</strong> división se<br />

asocia a un proceso.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplo: Cálculo <strong>de</strong>l mínimo<br />

Se pue<strong>de</strong> aplicar la estrategia <strong>de</strong> divi<strong>de</strong>-y-vencerás a problemas<br />

que tradicionalmente no se han resuelto con esta técnica.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Descomposición <strong>de</strong> datos<br />

• Apropiado para <strong>algoritmos</strong> que trabajan con<br />

una gran cantidad <strong>de</strong> datos: el problema está<br />

en el volumen.<br />

• Habitualmente se realiza en dos etapas:<br />

– Partición <strong>de</strong> los datos.<br />

– Cambio en la computación para trabajar con múltiples<br />

particiones <strong>de</strong> datos.<br />

• ¿Qué datos hay que dividir en particiones (los <strong>de</strong><br />

entrada, los intermedios): Depen<strong>de</strong> <strong>de</strong>l caso.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplo: Multiplicación <strong>de</strong> matrices<br />

• Partición <strong>de</strong> los datos <strong>de</strong> salida:


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplo: Multiplicación <strong>de</strong> matrices<br />

• Partición <strong>de</strong> los datos intermedios:<br />

Grafo <strong>de</strong> <strong>de</strong>pen<strong>de</strong>ncias <strong>de</strong> datos


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Descomposición exploratoria<br />

• Apropiado para <strong>de</strong>scomponer cálculos<br />

basados en la búsqueda <strong>de</strong> un espacio<br />

<strong>de</strong> soluciones.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Descomposición exploratoria


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Descomposición exploratoria<br />

• Pue<strong>de</strong> resultar en speed-up anómalo:<br />

– Dependiendo <strong>de</strong> dón<strong>de</strong> se encuentre la solución<br />

<strong>de</strong>ntro <strong>de</strong>l espacio, la formulación paralela pue<strong>de</strong><br />

requerir más trabajo que la formulación serie.<br />

Speed-up anómalo <strong>de</strong>bido a <strong>de</strong>scomposición exploratoria


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Descomposición especulativa<br />

• Usada para extraer concurrencia en<br />

problemas don<strong>de</strong> el próximo paso es una<br />

acción (entre varias posibles), que sólo se<br />

pue<strong>de</strong> <strong>de</strong>terminar cuando la tarea actual<br />

concluya.<br />

• Esta <strong>de</strong>scomposición asume un cierto<br />

resultado <strong>de</strong> la tarea actual y ejecuta los<br />

pasos posteriores.<br />

– Equivalente a la ejecución especulativa a nivel <strong>de</strong><br />

microprocesador


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplos: Simulación discreta <strong>de</strong> eventos


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Descomposición especulativa<br />

• Si la predicción es errónea:<br />

– el trabajo realizado se <strong>de</strong>sperdicia<br />

– pue<strong>de</strong> que haya que <strong>de</strong>shacer los resultados <strong>de</strong> la<br />

tarea (restauración <strong>de</strong> contexto)<br />

• A menudo, pue<strong>de</strong> ser el único medio para<br />

obtener concurrencia.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Asignación <strong>de</strong> tareas<br />

• ¿Por qué una asignación <strong>de</strong> tareas ¿No es<br />

suficiente una asignación aleatoria<br />

• La asignación apropiada es crítica, a fin <strong>de</strong><br />

minimizar el coste asociado al paralelismo.<br />

• Coste = p·T p - T s.<br />

• Causas <strong>de</strong>l coste:<br />

– Carga <strong>de</strong> trabajo no equilibrada.<br />

– Comunicación entre procesos.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Asignación <strong>de</strong> tareas<br />

• Para una correcta asignación hay que<br />

estudiar los grafos <strong>de</strong> <strong>de</strong>pen<strong>de</strong>ncia e<br />

interacción <strong>de</strong> tareas:<br />

– ¿Se conocen las tareas a priori<br />

– ¿Y sus requisitos <strong>de</strong> cálculo<br />

– ¿Cuántos datos se asociarán por tarea<br />

– ¿Cómo se comunican las tareas<br />

Depen<strong>de</strong>ncia<br />

<strong>de</strong> datos<br />

Interacción


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplos: Interacción simple y compleja<br />

Interacción simple: Las<br />

tareas se comunican sólo<br />

con las adyacentes<br />

Interacción compleja:<br />

Las tareas necesitan<br />

mucha comunicación


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Objetivo: Equilibrado <strong>de</strong> carga<br />

• El equilibrado <strong>de</strong> carga es fundamental para<br />

maximizar la concurrencia.<br />

• Una asignación equitativa <strong>de</strong> tareas a<br />

procesadores no garantiza el equilibrado <strong>de</strong><br />

carga.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Técnicas <strong>de</strong> equilibrado <strong>de</strong> carga<br />

• Asignación estática:<br />

– Las tareas se distribuyen entre los procesadores antes <strong>de</strong> la<br />

ejecución.<br />

– Aplicable a tareas:<br />

• Generadas estáticamente<br />

• Con requisitos computaciones conocidos<br />

• Asignación dinámica:<br />

– Las tareas se distribuyen entre los procesadores en tiempo <strong>de</strong><br />

ejecución.<br />

– Aplicable a tareas:<br />

• Generadas dinámicamente<br />

• Con requisitos computaciones <strong>de</strong>sconocidos


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Técnicas <strong>de</strong> equilibrado <strong>de</strong> carga<br />

• Asignación estática:<br />

– Distribución en array<br />

– Particionamiento <strong>de</strong>l grafo<br />

• Asignación dinámica:<br />

– Patrones centralizados<br />

– Patrones distribuidos


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Asignación estática: Distribución en array<br />

• Apropiada para <strong>algoritmos</strong>:<br />

– que usan <strong>de</strong>scomposición <strong>de</strong> datos<br />

– sus datos se almacenan en forma <strong>de</strong> arrays<br />

• Tipos:<br />

– Distribución en bloques<br />

– Distribución cíclica<br />

– Distribución cíclica en bloques<br />

– Distribución aleatoria en bloques


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplo: Distribuciones en bloques<br />

8 procesos<br />

16 procesos


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplo: Distribuciones en bloques<br />

Partición<br />

unidimensional<br />

n 2 2<br />

n<br />

p<br />

2<br />

2<br />

n + n<br />

p<br />

n 2<br />

p<br />

n 2<br />

p<br />

Partición<br />

bidimensional<br />

2n 2<br />

p<br />

Los datos <strong>de</strong> las zonas sombreadas A y B son requeridos por el proceso que<br />

calcula la zona sombreada C. La partición unidimensional requiere más acceso a<br />

datos que la bidimensional.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Ejemplo: Distribuciones cíclicas en bloques<br />

• Se usa para evitar problemas <strong>de</strong> <strong>de</strong>sequilibrio <strong>de</strong> carga cuando<br />

distintas partes <strong>de</strong>l array necesitan carga computacional distinta.<br />

•Se divi<strong>de</strong> el array en más bloques que procesadores.<br />

•Cada procesador se encarga <strong>de</strong> varios bloques no contiguos.<br />

Ej.: Eliminación Gausiana.<br />

Distribuciones uni y<br />

bidimensionales sobre 4<br />

procesos


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Distribuciones aleatorias en bloques<br />

• Algunas veces, la computación se realiza únicamente<br />

sobre ciertas partes <strong>de</strong>l array:<br />

– por ejemplo, en la multiplicación <strong>de</strong> matrices dispersas.<br />

El uso <strong>de</strong> distribución<br />

cíclica en bloques llevaría<br />

a un <strong>de</strong>sequilibrio <strong>de</strong><br />

carga


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Distribuciones en bloques aleatorios<br />

Distribución aleatoria<br />

unidimensional<br />

Distribución aleatoria bidimensional: Mejor equilibrado <strong>de</strong> carga.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Particionamiento <strong>de</strong>l grafo<br />

• La asignación <strong>de</strong> procesos se pue<strong>de</strong><br />

conseguir particionando directamente el<br />

grafo <strong>de</strong> interacción <strong>de</strong> tareas.<br />

• Ejemplo: Mo<strong>de</strong>lado basado en cálculos sobre malla.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Particionamiento <strong>de</strong>l grafo<br />

Distribución aleatoria en<br />

8 procesos<br />

Carga equidistribuida<br />

Distribución en 8 procesos<br />

usando un algoritmo <strong>de</strong><br />

particionamiento <strong>de</strong> grafos<br />

Carga equidistribuida<br />

+<br />

Minimización <strong>de</strong> comunicaciones


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Particionamiento <strong>de</strong>l grafo<br />

Otro ejemplo: Multiplicación <strong>de</strong> matriz dispersa<br />

Asignación contigua,<br />

Cada proceso se<br />

ocupa <strong>de</strong> 4 filas<br />

consecutivas<br />

Asignación que minimiza las<br />

comunicaciones y mantiene<br />

las misma carga<br />

computacional por proceso


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Patrones <strong>de</strong> equilibrado dinámico <strong>de</strong> carga<br />

• Tema <strong>de</strong> máxima actualidad a nivel <strong>de</strong><br />

investigación.<br />

• Patrones centralizados:<br />

– Un cierto procesador es responsable <strong>de</strong> repartir el<br />

trabajo.<br />

• Patrones distribuidos:<br />

– El trabajo se pue<strong>de</strong> distribuir entre cualquier par <strong>de</strong><br />

procesadores.


AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />

Juan Antonio Maestro (2004/05)<br />

Asignación para minimizar los costes <strong>de</strong> interacción<br />

• Maximizar ubicación conjunta <strong>de</strong> datos.<br />

• Minimizar volumen <strong>de</strong> intercambio <strong>de</strong> datos.<br />

• Minimizar frecuencia <strong>de</strong> interacción.<br />

• Minimizar contención y hot spots.<br />

• Solapar computación y comunicación.<br />

• Réplica selectiva <strong>de</strong> datos y cálculo.<br />

Estos objetivos se consiguen con una buena<br />

<strong>de</strong>scomposición y asignación <strong>de</strong> tareas.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!