ARQ_AvCap3

8
PRINCIPIOS DE DISEÑO DE ALGORITMOS PARALELOS PRELIMINARES: DESCOMPOSICION, TAREAS Y GRAFICOS DE DEPENDENCIA - El primer paso en el desarrollo de un algoritmo paralelo es descomponer el problema en tareas que pueden ser ejecutadas concurrentamente - Las tareas pueden ser del mismo tamaño, diferentes o incluso indeterminante. - Una descomposición se puede ilustrar en forma de un grafico dirigido con nodos correspondientes a las tareas y los bordes que indican que el resultado de una tarea se requiere para procesar la siguiente. Esta grafica se llama gráfico de dependencia de tareas. Ej. MULTIPLICACION DE UNA MaTRIZ DENSA con un VECTOR - Calculo de cada elemento del vector de salida y es independiente a otros elementos. Basados en esto, un producto de matriz-vector denso se puede descomponer en n o varias tareas Ej. PROCESAR CONSULTAs EN LA BASE DE DATOS - La ejecución de la consulta se puede dividir en subtareas de diversas maneras - Cada tarea solicitada puede ser la generación de un intermedio de tablas de entrada que satisfacen una clausula particular - Tener en cuenta que el mismo problema ses puede descomponer en subtareas de otra manera tmabien. - Diferentes descomposiciones de tareas puede dar lugara diferencias significativas con respecto a su rendimiento en paralelo virtual GRANULIDAD DE DECOMPOSICIONES DE TAREA - El numero de tareas en que se descompone un problema determina su granulidad - En Gran numero de tareas: granulidad fina; pequeño número: granulidad gruesa GRADO DE CONCURRENCIA

Transcript of ARQ_AvCap3

Page 1: ARQ_AvCap3

PRINCIPIOS DE DISEÑO DE ALGORITMOS PARALELOS

PRELIMINARES: DESCOMPOSICION, TAREAS Y GRAFICOS DE DEPENDENCIA

- El primer paso en el desarrollo de un algoritmo paralelo es descomponer el problema en tareas que pueden ser ejecutadas concurrentamente

- Las tareas pueden ser del mismo tamaño, diferentes o incluso indeterminante.- Una descomposición se puede ilustrar en forma de un grafico dirigido con nodos

correspondientes a las tareas y los bordes que indican que el resultado de una tarea se requiere para procesar la siguiente. Esta grafica se llama gráfico de dependencia de tareas.

Ej. MULTIPLICACION DE UNA MaTRIZ DENSA con un VECTOR

- Calculo de cada elemento del vector de salida y es independiente a otros elementos. Basados en esto, un producto de matriz-vector denso se puede descomponer en n o varias tareas

Ej. PROCESAR CONSULTAs EN LA BASE DE DATOS

- La ejecución de la consulta se puede dividir en subtareas de diversas maneras- Cada tarea solicitada puede ser la generación de un intermedio de tablas de entrada que

satisfacen una clausula particular - Tener en cuenta que el mismo problema ses puede descomponer en subtareas de otra

manera tmabien.- Diferentes descomposiciones de tareas puede dar lugara diferencias significativas con

respecto a su rendimiento en paralelo virtual

GRANULIDAD DE DECOMPOSICIONES DE TAREA

- El numero de tareas en que se descompone un problema determina su granulidad- En Gran numero de tareas: granulidad fina; pequeño número: granulidad gruesa

GRADO DE CONCURRENCIA

- El número de tareas que pueden ser ejecutadas en paralelo es el grado de concurrencia de una descomposición

- Dado q el num de tareas q sse pueden ejecutar en paralelo puede cambiar con la ejecución del programa, el grado máximo de concurrencia es el número máximo de tareas en cualquier momento de la ejecución

- El grado medio de concurrencia es el número medio de las tareas que puede ser procesado en paralelo a través de la ejecución del programa

- El grado de aumento de concurrencia como la descomposcion ses vuelve mas fino en granularidad y viceversa.

LONGITUD DE TRAYECTORIA (ruta) CRÍTICA

- Una trayectoria dirigida en la tarea del grafico de la dependencia representa una secuencia de tareas que deben ser procesadas una después de otra

Page 2: ARQ_AvCap3

- La trayectoria más larga determina el tiempo más corto en que el problema puede ser ejecutado en paralelo

- La longitud de la trayectoria más larga de un gráfico (en un gráfico) de un grafico de la dependencia de tarea, se llama longitud de camino critico (ruta critica)

LIMITES DEL RENDIMIENTO EN PARALELO

- El tiempo paralelo puede hacerse arbitrariamente pequeño al hacer más fina la descomposición de la granulidad

- La solución de la relación entre granulidad de una descomposición y los costos generales asociados a menudo determina los límites de rendimiento

LOS GRAficOS DE TAREAS DE ITERACION

- El gráfico de tareas (nodos) y sus iteraciones/intercambio de datos (bordes) se le conoce como grafico de iteración de tarea

- Estos representan dependencias de datos, los graficos de dependencias de tareas representan dependencias de control

LOS GRAFiCOS DE TAREAS DE ITERACION, GRANULIDAD Y COMUNICACIÓN

- Si la granulidad de una descomposición es más fina, la sobrecarga asociada aumenta (c0omo la relación de trabajo útil asociada a una tarea)

PROCESAMIENTO Y MAPEO

- En general el número de tareas en una descomposición es superior al número de elementos de procesamiento disponibles

- Por esta razón, un algoritmo paralelo debe proporcionar una asignación de tareas a los procesos

- Los gratos de dependencia de tareas se pueden utilizar para garantizar que el trabajo se extendió por igual en todas los procesos en cualquier punto

- La Asignacion adecuada de las tareas a los procesos es crítica para el funcionamiento en paralelo de un algoritmo.

- Las asignaciones están determinadas tanto por la dependencia entre tareas y los graficos de interacción de tareas

- Graficos de dependencia de tareas se puede utilizar para garantizar que el trabajo se extiende por igual en todos los procesos en cualquier punto (minimo ralentí y el equilibrio optimo de la carga)

- Graficos de tareas de interaccion pueden ser usados para asegurarse de que los procesos necesitan interaccion minima con otros procesos de comunicación.

- Una Asignacion adecuada debe minimizar el tiempo de ejecución en paralelo a través de :o Asign de tareas independientes para diferentes procesoso Asign de tareas en la ruta critica para procesos tan pronto como estén disponibleso Reducir al minimo la interaccion entre los procesos mediante la asignación de

tareas con interacciones densas a el mismo proceso.

TECNICAS DE DESCOMPOSICION (diapositva 21

Page 3: ARQ_AvCap3

- Descomposición recursiva: Se adapta a los problemas que se resuelven mediante el divide y vencerás

- Descomposición de datos: induce una descomposición del problema. Los datos pueden dividirse en diversas formas, esta impacta críticamente el rendimiento del sistema.

- Descomposición por salida de datos: Una descomposición a través de la salida de tareas descompone el problema en forma natural

PARTICIONAMIENTO DE DATOS DE ENTRADA

- Esta es la descomposición natural ya que la salida no se conoce claramente a priori- Una tarea se asocia con cada partición de datos de entrada

PARTICION DE DATOS DE E/S

- La entrada y salida de descomposición de datos se pueden combinar para un mayor grado de simultaneidad

PARTICIONAMIENTO DE DATOS INTERMEDIOS

- A menudo el cálculo puede ser visto como una secuencia de transformación de los datos de entrada a los de salida

EL PROPIETARIO CALCULA REGLAS

- En el proceso se asigna un elemento particular de datos, este es responsable de todo lo asociado a el

DESCOMPOSICION EXPLORATORIA

- Estos problemas implican típicamente la exploración de un espacio de estados de soluciones

DESCOMPOSICION ESPECULATIVA

- Enfoques conservadores: identifican las tareas independientes solo cuando están diseñados para no tener dependencia

- Enfoques optimistas: programar tareas cuando potencialmente pueden ser erróneas

DESCOMPOSICION HIBRIDA

- Mezcla de descomposición de datos y especulativo pueden funcionar bien- Para problemas simples como la búsqueda de un mínimo de una lista de números, una

mezcla de datos y recursiva funciona bien

CARACTERISTICAS DE LAS TAREAS

- Generación de tareas o Tareas recurrentes pueden ser identificadas a priorio Dinámica: las tareas se generan mientras se lleva a cabo la programación

- Tamaño de tareaso Uniforme: todas las tareas son del mismo tamaño

Page 4: ARQ_AvCap3

o No uniforme: los tamaños se pueden estimar a priori o no- Tamaño de los datos asociados a las tareas

o Pequeño: el contexto de una tarea implica que un algoritmo puede comunicar fácilmente esta tarea a otros procesos de forma dinámica

o Grande: enlazar el contexto de la tarea a un proceso, o alternativamente, un algoritmo puede intentar reconstruir el contexto en otros procesos en lugar de comunicar el contexto de la tarea

CARACTERISTICAS DE LAS ITERACIONES DE TAREAS

- Las estáticas: son conocidas a priori. Estas son relativamente sencillas de código en los programas

- Dinámicas: no es posible determinar a priori, estas son más difíciles de codificar- Periódicas: patrón definido- Regulares: no tienen bien definida la topología

TECNICAS DE MAPEO

- Una vez que el problema se ha descompuesto en tareas concurrentes, estas deben ser comparadas con los procesos

- Las asignaciones deben reducir al mínimo los gastos generales

TECNICAS DE MAPEO: CORRELACION PARA VACIO MINIMO

- Mapeo simultáneamente debe minimizar el vacío y el equilibrio de carga- Mapeo estático: las tareas se asignan a los procesos a priori. Se debe de tener una buena

estimación del tamaño de cada tarea- Mapeo dinámico: las tareas se asignan a los procesos en ejecución. Las tareas se generan

en tiempo de ejecución, su tamaño no es conocido

LOS ESQUEMAS DE ASIGNACION ESTATICA

- Asignaciones basadas en la partición de datos: podemos combinar la partición de datos en el cálculo de la regla del propietario para dividir el cálculo en subtareas

- Esquema de bloque matriz de distribución: se puede generalizar a dimensiones más altas- Ciclos y distribución de bloques de ciclos: el régimen de distribuciones de bloques puede

ser usado para aliviar la carga de desequilibrio y problemas de vacío- Los bloques se asignan a los procesos de una manera round-robin para cada proceso tiene

varios bloques no adyacentes- Bloque-ciclo de distribución por eliminación Gaussiana: mediante la asignación de bloques

en forma de bloque ciclo, cada procesador recibe bloques de partes diferentes de la matriz- Bloque-distribución cíclico: una distribución cíclica es un caso especial en el que el tamaño

de bloque es uno- Gratico de descomposición partición de datos dispersas: En el caso de matrices dispersas

la descomposición de bloques son más complejos

ASIGNACION VASADOS EN REPARTICION DE TAREAS

Page 5: ARQ_AvCap3

- Particionar una tarea dada la dependencia del gratico a través de los procesos. La determinación de una asignación óptima para una tarea general de la dependencia del grafo es un problema NP-completo

- Partición de tareas: asignación de un grato de árbol binario de dependencia: el grafo de dependencias de una vista rápida de tipo y la forma en que se pueden asignar a los procesos en un hipercubo

- Partición de tareas: asignación de una grafo disperso: para el cálculo de una matriz dispersa – producto vector y su asignación

ASIGNACIONES JERAQUICAS

- A veces, una técnica de mapeo única es insuficiente. Por esta razón, el mapeo de tarea se puede utilizar en el nivel superior y dentro de cada nivel la partición de datos

ASIGNACION DE MAPEO DINAMICO

- Se conoce también como balanceo de carga dinámica, ya que el equilibro de carga es la principal motivación para la asignación dinámica

ASIGNACION DINAMICA CENTRALIZADA

- Los procesos son designados como maestros o esclavos- Cuando se aumenta el número de procesos, el maestro puede llegar a ser el cuello de

botella- Para contrarrestar el cuello de botella, un proceso puede recoger un número de tareas de

una sola vez. Esto se denomina programación de Chunk

ASIGNACION DINAMICA DISTRIBUIDA

- Cada proceso puede evitar o recibir el trabajo de otros procesos

MINIMIZAR GASTOS GENERALES DE ITERACION

- Maximizar la localidad de datos: reutilizar datos intermedios- Minimizar el volumen de intercambio de datos: hay un costo asociado con cada iteración- Reducir al mínimo la frecuencia de las iteraciones: hay un costo inicial asociado con cada

iteración- Minimizar la contención y puntos críticos: utilizar técnicas descentralizadas, replicar datos

cuando sea necesario- Superposición de los cálculos de iteraciones: usar sin bloqueo de comunicación, multihilos

y ocultar las latencias de pre búsqueda- La replicación de datos o cálculos- Uso de comunicación de grupo en lugar de primitivas punto a punto- Superposición de iteraciones con otras iteraciones

MODELOS DE ALGORITMOS PARALELO

- En paralelo: las tareas son estáticamente asignadas a los procesos

Page 6: ARQ_AvCap3

- Gráfico: a partir de un grafo de dependencias de tareas, las interrelaciones entre estas se utilizan para promover la localidad o para reducir los costos de iteración

- Maestro-Esclavo: generan uno o más procesos de trabajo y se asignan- Pipeline/Productor-Consumidor: un flujo de datos se pasa a través de una sucesión de

procesos, cada uno de los cuales realiza una tarea- Híbridos: puede estar compuesto por cualquiera de los varios modelos aplicados

jerárquicamente o aplicar múltiples modelos secuencialmente a las diferentes fases de un algoritmo paralelo