Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 Algoritmos
3 Algoritmos
Curso 2011-2012
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.
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).
Eliminacin Gausiana
La matriz A de un sistema de ecuaciones se reemplaza por una matriz equivalente triangular superior
Quicksort
Puzzle de 15 piezas
(a)
(b)
Mtodos habituales de descomposicin Descomposicin de datos. Descomposicin recursiva. Descomposicin exploratoria. Descomposicin especulativa. Descomposicin hbrida.
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.
Ejemplo: Quicksort
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.
Descomposicin exploratoria Apropiado para descomponer clculos basados en la bsqueda de un espacio de soluciones.
Descomposicin exploratoria
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.
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
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.
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
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.
Asignacin dinmica:
Las tareas se distribuyen entre los procesadores en tiempo de ejecucin. Aplicable a tareas:
Generadas dinmicamente Con requisitos computaciones desconocidos
Asignacin dinmica:
Patrones centralizados Patrones distribuidos
Tipos:
Distribucin en bloques Distribucin cclica Distribucin cclica en bloques Distribucin aleatoria en bloques
8 procesos
16 procesos
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.
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.
Asignacin que minimiza las comunicaciones y mantiene las misma carga computacional por proceso
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.
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.