14.01.2015 Visualizaciones

Diseño de algoritmos paralelos

Diseño de algoritmos paralelos

Diseño de algoritmos paralelos

SHOW MORE
SHOW LESS

¡Convierta sus PDFs en revista en línea y aumente sus ingresos!

Optimice sus revistas en línea para SEO, use backlinks potentes y contenido multimedia para aumentar su visibilidad y ventas.

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!