Anda di halaman 1dari 6

PRINCIPIOS DE DISEO 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 tamao, diferentes o incluso indeterminante. Una descomposicin 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 grfico 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 ejecucin de la consulta se puede dividir en subtareas de diversas maneras Cada tarea solicitada puede ser la generacin 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; pequeo nmero: granulidad gruesa

GRADO DE CONCURRENCIA El nmero de tareas que pueden ser ejecutadas en paralelo es el grado de concurrencia de una descomposicin Dado q el num de tareas q sse pueden ejecutar en paralelo puede cambiar con la ejecucin del programa, el grado mximo de concurrencia es el nmero mximo de tareas en cualquier momento de la ejecucin El grado medio de concurrencia es el nmero medio de las tareas que puede ser procesado en paralelo a travs de la ejecucin del programa El grado de aumento de concurrencia como la descomposcion ses vuelve mas fino en granularidad y viceversa.

LONGITUD DE TRAYECTORIA (ruta) CRTICA Una trayectoria dirigida en la tarea del grafico de la dependencia representa una secuencia de tareas que deben ser procesadas una despus de otra

La trayectoria ms larga determina el tiempo ms corto en que el problema puede ser ejecutado en paralelo La longitud de la trayectoria ms larga de un grfico (en un grfico) 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 pequeo al hacer ms fina la descomposicin de la granulidad La solucin de la relacin entre granulidad de una descomposicin y los costos generales asociados a menudo determina los lmites de rendimiento

LOS GRAficOS DE TAREAS DE ITERACION El grfico de tareas (nodos) y sus iteraciones/intercambio de datos (bordes) se le conoce como grafico de iteracin 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 COMUNICACIN Si la granulidad de una descomposicin es ms fina, la sobrecarga asociada aumenta (c0omo la relacin de trabajo til asociada a una tarea)

PROCESAMIENTO Y MAPEO En general el nmero de tareas en una descomposicin es superior al nmero de elementos de procesamiento disponibles Por esta razn, un algoritmo paralelo debe proporcionar una asignacin 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 crtica para el funcionamiento en paralelo de un algoritmo. Las asignaciones estn determinadas tanto por la dependencia entre tareas y los graficos de interaccin 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 comunicacin. Una Asignacion adecuada debe minimizar el tiempo de ejecucin en paralelo a travs de : o Asign de tareas independientes para diferentes procesos o Asign de tareas en la ruta critica para procesos tan pronto como estn disponibles o Reducir al minimo la interaccion entre los procesos mediante la asignacin de tareas con interacciones densas a el mismo proceso.

TECNICAS DE DESCOMPOSICION (diapositva 21

Descomposicin recursiva: Se adapta a los problemas que se resuelven mediante el divide y vencers Descomposicin de datos: induce una descomposicin del problema. Los datos pueden dividirse en diversas formas, esta impacta crticamente el rendimiento del sistema. Descomposicin por salida de datos: Una descomposicin a travs de la salida de tareas descompone el problema en forma natural

PARTICIONAMIENTO DE DATOS DE ENTRADA Esta es la descomposicin natural ya que la salida no se conoce claramente a priori Una tarea se asocia con cada particin de datos de entrada

PARTICION DE DATOS DE E/S La entrada y salida de descomposicin de datos se pueden combinar para un mayor grado de simultaneidad

PARTICIONAMIENTO DE DATOS INTERMEDIOS A menudo el clculo puede ser visto como una secuencia de transformacin 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 tpicamente la exploracin de un espacio de estados de soluciones

DESCOMPOSICION ESPECULATIVA Enfoques conservadores: identifican las tareas independientes solo cuando estn diseados para no tener dependencia Enfoques optimistas: programar tareas cuando potencialmente pueden ser errneas

DESCOMPOSICION HIBRIDA Mezcla de descomposicin de datos y especulativo pueden funcionar bien Para problemas simples como la bsqueda de un mnimo de una lista de nmeros, una mezcla de datos y recursiva funciona bien

CARACTERISTICAS DE LAS TAREAS Generacin de tareas o Tareas recurrentes pueden ser identificadas a priori o Dinmica: las tareas se generan mientras se lleva a cabo la programacin Tamao de tareas o Uniforme: todas las tareas son del mismo tamao o No uniforme: los tamaos se pueden estimar a priori o no

Tamao de los datos asociados a las tareas o Pequeo: el contexto de una tarea implica que un algoritmo puede comunicar fcilmente esta tarea a otros procesos de forma dinmica 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 estticas: son conocidas a priori. Estas son relativamente sencillas de cdigo en los programas Dinmicas: no es posible determinar a priori, estas son ms difciles de codificar Peridicas: patrn definido Regulares: no tienen bien definida la topologa

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 mnimo los gastos generales

TECNICAS DE MAPEO: CORRELACION PARA VACIO MINIMO Mapeo simultneamente debe minimizar el vaco y el equilibrio de carga Mapeo esttico: las tareas se asignan a los procesos a priori. Se debe de tener una buena estimacin del tamao de cada tarea Mapeo dinmico: las tareas se asignan a los procesos en ejecucin. Las tareas se generan en tiempo de ejecucin, su tamao no es conocido

LOS ESQUEMAS DE ASIGNACION ESTATICA Asignaciones basadas en la particin de datos: podemos combinar la particin de datos en el clculo de la regla del propietario para dividir el clculo en subtareas Esquema de bloque matriz de distribucin: se puede generalizar a dimensiones ms altas Ciclos y distribucin de bloques de ciclos: el rgimen de distribuciones de bloques puede ser usado para aliviar la carga de desequilibrio y problemas de vaco Los bloques se asignan a los procesos de una manera round-robin para cada proceso tiene varios bloques no adyacentes Bloque-ciclo de distribucin por eliminacin Gaussiana: mediante la asignacin de bloques en forma de bloque ciclo, cada procesador recibe bloques de partes diferentes de la matriz Bloque-distribucin cclico: una distribucin cclica es un caso especial en el que el tamao de bloque es uno Gratico de descomposicin particin de datos dispersas: En el caso de matrices dispersas la descomposicin de bloques son ms complejos

ASIGNACION VASADOS EN REPARTICION DE TAREAS

Particionar una tarea dada la dependencia del gratico a travs de los procesos. La determinacin de una asignacin ptima para una tarea general de la dependencia del grafo es un problema NP-completo Particin de tareas: asignacin de un grato de rbol binario de dependencia: el grafo de dependencias de una vista rpida de tipo y la forma en que se pueden asignar a los procesos en un hipercubo Particin de tareas: asignacin de una grafo disperso: para el clculo de una matriz dispersa producto vector y su asignacin

ASIGNACIONES JERAQUICAS A veces, una tcnica de mapeo nica es insuficiente. Por esta razn, el mapeo de tarea se puede utilizar en el nivel superior y dentro de cada nivel la particin de datos

ASIGNACION DE MAPEO DINAMICO Se conoce tambin como balanceo de carga dinmica, ya que el equilibro de carga es la principal motivacin para la asignacin dinmica

ASIGNACION DINAMICA CENTRALIZADA Los procesos son designados como maestros o esclavos Cuando se aumenta el nmero de procesos, el maestro puede llegar a ser el cuello de botella Para contrarrestar el cuello de botella, un proceso puede recoger un nmero de tareas de una sola vez. Esto se denomina programacin 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 iteracin Reducir al mnimo la frecuencia de las iteraciones: hay un costo inicial asociado con cada iteracin Minimizar la contencin y puntos crticos: utilizar tcnicas descentralizadas, replicar datos cuando sea necesario Superposicin de los clculos de iteraciones: usar sin bloqueo de comunicacin, multihilos y ocultar las latencias de pre bsqueda La replicacin de datos o clculos Uso de comunicacin de grupo en lugar de primitivas punto a punto Superposicin de iteraciones con otras iteraciones

MODELOS DE ALGORITMOS PARALELO En paralelo: las tareas son estticamente asignadas a los procesos

Grfico: 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 iteracin Maestro-Esclavo: generan uno o ms procesos de trabajo y se asignan Pipeline/Productor-Consumidor: un flujo de datos se pasa a travs de una sucesin de procesos, cada uno de los cuales realiza una tarea Hbridos: puede estar compuesto por cualquiera de los varios modelos aplicados jerrquicamente o aplicar mltiples modelos secuencialmente a las diferentes fases de un algoritmo paralelo