Metodolog a de la Programaci n Paralela - UM

37
Metodolog´ ıa de la Programaci´ on Paralela Facultad Inform´ atica, Universidad de Murcia Esquemas algor´ ıtmicos paralelos: Paralelizaci ´ on de problemas de recorrido de ´ arboles Trabajadores replicados y esquema maestro esclavo Domingo Gim ´ enez (Universidad de Murcia) 1 / 35

Transcript of Metodolog a de la Programaci n Paralela - UM

Page 1: Metodolog a de la Programaci n Paralela - UM

Metodologıa de la Programacion Paralela

Facultad Informatica, Universidad de Murcia

Esquemas algorıtmicos paralelos:

Paralelizacion de problemasde recorrido de arboles

Trabajadores replicados yesquema maestro esclavo

Domingo Gim enez (Universidad de Murcia) 1 / 35

Page 2: Metodolog a de la Programaci n Paralela - UM

Sesion 4

Descomposicion del trabajo:Paralelismo de datos.Particionado de datos.Algoritmos relajados.

De paralelismo basado en dependencias de datos:Paralelismo sıncrono.Dependencias en arbol o grafo.Pipeline.

De paralelizacion de esquemas secuenciales:Divide y Venceras.Programacion Dinamica.Recorridos de arboles: Backtracking y Branch and Bound.

De multiples tareas o trabajadores:Bolsa de tareas. Granja de procesos. Maestro-Esclavo.

Domingo Gim enez (Universidad de Murcia) 2 / 35

Page 3: Metodolog a de la Programaci n Paralela - UM

Contenido

1 Recorrido de arbolesBacktrackingBranch and Bound

2 Trabajadores replicadosBolsa de tareasMaestro-EsclavoEsquemas descentralizados

3 Mas ejemplos

Domingo Gim enez (Universidad de Murcia) 3 / 35

Page 4: Metodolog a de la Programaci n Paralela - UM

Arboles de soluciones

Problemas de busqueda en un espacio de posibles soluciones.

Problemas de distintos tipos: busqueda de una unica solucion, detodas las soluciones, de la solucion optima, etc.

Esquemas tıpicos de recorrido del arbol: Backtracking, Branch andBound, etc.

Se descompone el espacio de busqueda en subespacios maspequenos y se asignan a distintos componentes computacionales(hilos, procesos).

La generacion de subproblemas puede ser estatica o dinamica: todaslas tareas se generan inicialmente, o se generan nuevas tareasdurante el recorrido del arbol.

La asignacion de tareas puede ser estatica o dinamica: se decideinicialmente que subproblemas resuelve cada elemento de proceso,o se asigna trabajo segun la velocidad de cada elemento de proceso.

Domingo Gim enez (Universidad de Murcia) 4 / 35

Page 5: Metodolog a de la Programaci n Paralela - UM

Contenido

1 Recorrido de arbolesBacktrackingBranch and Bound

2 Trabajadores replicadosBolsa de tareasMaestro-EsclavoEsquemas descentralizados

3 Mas ejemplos

Domingo Gim enez (Universidad de Murcia) 5 / 35

Page 6: Metodolog a de la Programaci n Paralela - UM

Ejemplo - Subconjunto que suma una cantidad

Problema:Dado un conjunto de n enteros, C = {a0, a1, . . . , an−1}, y un entero V ,se quiere encontrar un subconjunto S ⊆ C tal que

∑si∈S si = V .

Representacion de soluciones:n-tupla X de valores 0 o 1, con ai ∈ S sı y solo sı xi = 1.

Arbol de soluciones:Arbol binario. Cada nivel representa un elemento de C, y cada nodotiene dos hijos que corresponden a los valores xi = 0 y xi = 1.

Son solucion los nodos terminales en los que∑n−1

i=0 xiai = V .

Domingo Gim enez (Universidad de Murcia) 6 / 35

Page 7: Metodolog a de la Programaci n Paralela - UM

Backtracking - Subconjunto que suma una cantidad

Domingo Gim enez (Universidad de Murcia) 7 / 35

Page 8: Metodolog a de la Programaci n Paralela - UM

Backtracking - Subconjunto que suma una cantidad

Domingo Gim enez (Universidad de Murcia) 8 / 35

Page 9: Metodolog a de la Programaci n Paralela - UM

Backtracking - Subconjunto que suma una cantidad

Domingo Gim enez (Universidad de Murcia) 9 / 35

Page 10: Metodolog a de la Programaci n Paralela - UM

Backtracking - Subconjunto que suma una cantidad

Domingo Gim enez (Universidad de Murcia) 10 / 35

Page 11: Metodolog a de la Programaci n Paralela - UM

Backtracking - Subconjunto que suma una cantidad

Domingo Gim enez (Universidad de Murcia) 11 / 35

Page 12: Metodolog a de la Programaci n Paralela - UM

Backtracking paralelo

Generacion secuencial inicial de un numero fijo de tareas.Distribucion de tareas:

◮ Estatica. Balancear la distribucion.Si se sabe el coste de cada tarea se puede calcular distribucion optima(problema NP).Si no se sabe, se pueden generar mas tareas que procesos yasignarlas aleatoriamente o cıclicamente.

◮ Dinamica. Mas difıcil la gestion.Memoria Compartida, acceso en exclusiva a descriptores de lastareas.Paso de Mensajes, proceso que gestiona la bolsa de tareas (Maestro),y coste alto de la gestion por comunicaciones.

Generacion dinamica de tareas: se generan tareas y al tratarlas segeneran nuevas tareas.Coste de gestion de la bolsa de tareas.La granularidad de las tareas debe ser alta.

Domingo Gim enez (Universidad de Murcia) 12 / 35

Page 13: Metodolog a de la Programaci n Paralela - UM

Contenido

1 Recorrido de arbolesBacktrackingBranch and Bound

2 Trabajadores replicadosBolsa de tareasMaestro-EsclavoEsquemas descentralizados

3 Mas ejemplos

Domingo Gim enez (Universidad de Murcia) 13 / 35

Page 14: Metodolog a de la Programaci n Paralela - UM

Branch and Bound - ideas generales

En problemas de busqueda en un espacio de soluciones.

Normalmente problemas de optimizacion.

Se trata de obtener la solucion optima explorando la menor cantidadposible de nodos.

Se mantiene una Lista de Nodos Vivos. Se van extrayendo nodos dela LNV y se generan sus hijos. Para cada nodo se generan cotainferior, cota superior y estimacion del beneficio (coste) de la solucionoptima a partir de el.

Ramificacion:Los nodos de la LNV se van extrayendo con un criterio que puedeestar basado en la estimacion del beneficio.

Poda:Un nodo se poda si su Cota Superior es menor que la mayor CotaInferior de los nodos generados.

Domingo Gim enez (Universidad de Murcia) 14 / 35

Page 15: Metodolog a de la Programaci n Paralela - UM

Branch and Bound - paralelismo1 Busqueda paralela usando diferentes algoritmos en diferentes

procesos: diferentes formas de calcular las cotas y la estimacion delbeneficio, y distintos criterios de seleccion.Se repiten nodos pero hay pocas comunicaciones.

Domingo Gim enez (Universidad de Murcia) 15 / 35

Page 16: Metodolog a de la Programaci n Paralela - UM

Branch and Bound - paralelismo1 Busqueda paralela usando diferentes algoritmos en diferentes

procesos: diferentes formas de calcular las cotas y la estimacion delbeneficio, y distintos criterios de seleccion.Se repiten nodos pero hay pocas comunicaciones.

2 Expansion en paralelo de cada nodo.Se necesita que la expansion de cada nodo sea costosa: grannumero de hijos, alto coste de los calculos de cada hijo.Gestion de la lista de nodos vivos centralizada⇒ muchascomunicaciones.

Domingo Gim enez (Universidad de Murcia) 15 / 35

Page 17: Metodolog a de la Programaci n Paralela - UM

Branch and Bound - paralelismo1 Busqueda paralela usando diferentes algoritmos en diferentes

procesos: diferentes formas de calcular las cotas y la estimacion delbeneficio, y distintos criterios de seleccion.Se repiten nodos pero hay pocas comunicaciones.

2 Expansion en paralelo de cada nodo.Se necesita que la expansion de cada nodo sea costosa: grannumero de hijos, alto coste de los calculos de cada hijo.Gestion de la lista de nodos vivos centralizada⇒ muchascomunicaciones.

3 Evaluacion paralela de subproblemas:Se asignan a cada proceso varios nodos de la LNV.Posibilidades de distribucion:Estatica: pocas comunicaciones, se pueden difundir las cotas parapodar; la asignacion de los nodos puede ser balanceada oponderada.Dinamica con bolsa de tareas: mas comunicaciones. Laactualizacion de la bolsa puede ser inmediata o pospuesta.

Domingo Gim enez (Universidad de Murcia) 15 / 35

Page 18: Metodolog a de la Programaci n Paralela - UM

Branch and Bound - Subconjunto que suma una cantidad

Domingo Gim enez (Universidad de Murcia) 16 / 35

Page 19: Metodolog a de la Programaci n Paralela - UM

Branch and Bound - comunicacion de las cotasComunicar las cotas puede contribuir a podar mas, pero conllevacomunicaciones.¿Cuando y como comunicarlas?

Domingo Gim enez (Universidad de Murcia) 17 / 35

Page 20: Metodolog a de la Programaci n Paralela - UM

Contenido

1 Recorrido de arbolesBacktrackingBranch and Bound

2 Trabajadores replicadosBolsa de tareasMaestro-EsclavoEsquemas descentralizados

3 Mas ejemplos

Domingo Gim enez (Universidad de Murcia) 18 / 35

Page 21: Metodolog a de la Programaci n Paralela - UM

Conceptos generales

Una serie de elementos de proceso que constituyen una Granja deprocesos y que pueden ser del mismo tipo (Trabajadores replicados).

Normalmente trabajan resolviendo tareas que se encuentran en unaestructura que contiene la definicion de las tareas a realizar: Bolsade tareas.

Y la gestion de la bolsa la hace un proceso distinguido (Maestro), queatiende las peticiones y los envıos de otros procesos (Esclavos).Se tiene ası el paradigma Maestro-Esclavo.

Domingo Gim enez (Universidad de Murcia) 19 / 35

Page 22: Metodolog a de la Programaci n Paralela - UM

Contenido

1 Recorrido de arbolesBacktrackingBranch and Bound

2 Trabajadores replicadosBolsa de tareasMaestro-EsclavoEsquemas descentralizados

3 Mas ejemplos

Domingo Gim enez (Universidad de Murcia) 20 / 35

Page 23: Metodolog a de la Programaci n Paralela - UM

Trabajadores replicados

Se mantiene una bolsa central de tareas.

Los trabajadores:

◮ Toman tareas de la bolsa.◮ Posiblemente generan otras nuevas.

Acaba la computacion cuando la bolsa esta vacıa y todos lostrabajadores han acabado (problema de deteccion de terminacion).

Util en problemas combinatorios: busqueda en arbol.

La asignacion dinamica de trabajos se hace para balancear lacomputacion.

Domingo Gim enez (Universidad de Murcia) 21 / 35

Page 24: Metodolog a de la Programaci n Paralela - UM

Bolsa de tareasBolsa de tareas: conjunto de descriptores de tareas; cada descriptorespecifica una computacion.En Memoria Compartida:una estructura centralizada de la que los trabajadores toman trabajosy posiblemente depositan otros nuevos. Acceso en exclusion mutua.En Paso de Mensajes:la estructura esta en la memoria de uno o varios procesos,la peticion y deposito de tareas conllevan comunicacion.Tener en cuenta:

◮ Contencion:Por ser la bolsa de tareas centralizada.Cuantos mas procesos mayor contencion.

◮ Balanceo:Si se descentraliza la bolsa hay mayor desbalanceo y menorcontencion⇒ compromiso entre contencion y balanceo.

◮ Terminacion:El test de terminacion es global⇒ sincronizacion.

Domingo Gim enez (Universidad de Murcia) 22 / 35

Page 25: Metodolog a de la Programaci n Paralela - UM

Ejemplo - Algoritmo de Dijkstra de camino mas cortoGrafo con matriz de adyacencia

Pasos del algoritmo:paso cola distanciasinicial 1 0 ∞ ∞ ∞ ∞

1 2,3 0 4 8 ∞ ∞

2 4,3 0 4 7 5 ∞

3 3,5 0 4 7 5 154 5 0 4 7 5 125 ∅ 0 4 7 5 12

¿Como paralelizar?:Pasos independientemente: Paralelizacion Sıncrona (Algoritmo de Dijkstra es deProgramacion Dinamica).

Procesos tomando elementos de la cola, pero genera nuevos elementos para la cola y

modifica el vector de distancias⇒ regiones crıticas, que limitan el paralelismo.Domingo Gim enez (Universidad de Murcia) 23 / 35

Page 26: Metodolog a de la Programaci n Paralela - UM

Esquema de trabajadores replicados con bolsa de tareasen OpenMPinicializar bolsa de tareas;inicializar tareas;omp set num threads(trabajadores);acabados = trabajadores;#pragma omp parallel private(fin,n){

fin=FALSO;Mientras no fin hacer

#pragma omp critical{

Si tareas = 0 y acabados = trabajadores entoncesfin=VERDADERO;

sino Si tareas , 0 entoncesacabados = acabados − 1;tareas = tareas − 1;tomar tarea de la bolsa;

finsi}

Si tomada tarea entoncesresolver tarea y generar n nuevas tareas;#pragma omp critical{

tareas = tareas + n;acabados = acabados + 1;insertar las n tareas en la bolsa;}

finsifinmientras}

bolsa de tareas y variables tareas yacabados son globales.Inicialmente 1 tarea y todos lostrabajadores inactivos(acabados = trabajadores).

Los hilos trabajan mientras quedentareas u otros hilos trabajando(pueden generar nuevas tareas).

No es necesario un Maestro. Todoslos hilos hacen el mismo trabajo.

Es necesario acceder en exclusionmutua a las variables compartidas.

Domingo Gim enez (Universidad de Murcia) 24 / 35

Page 27: Metodolog a de la Programaci n Paralela - UM

Contenido

1 Recorrido de arbolesBacktrackingBranch and Bound

2 Trabajadores replicadosBolsa de tareasMaestro-EsclavoEsquemas descentralizados

3 Mas ejemplos

Domingo Gim enez (Universidad de Murcia) 25 / 35

Page 28: Metodolog a de la Programaci n Paralela - UM

Maestro-Esclavo - esquema centralizado

Comunicaciones entre el maestro y los esclavos.El maestro conoce la condicion de fin y la comunica a los esclavos.

Domingo Gim enez (Universidad de Murcia) 26 / 35

Page 29: Metodolog a de la Programaci n Paralela - UM

Esquema Maestro-Esclavo con numero fijo de trabajos ydistribucion dinamica de trabajo

// Se dispone de p procesos esclavos// y de t tareasSi proceso maestro entonces

asignar un trabajo a cada esclavo;t = t − p;Mientras t,0 hacer

Recibe( resultado);Envia( trabajo, esclavo del que ha recibido);t = t − 1;

finmientrasMientras p,0 hacer

Recibe( resultado);Envia( marca de fin, esclavo del que ha recibido);p = p − 1;

finmientrassino

Recibe( trabajo, maestro);resolver trabajo;Envia( resultado, maestro);Recibe( trabajo o marca de fin, maestro);Mientras no recibida marca de fin hacer

resolver trabajo;Envia( resultado, maestro);Recibe( trabajo o marca de fin, maestro);

finmientrasfinsi

Suponemos que inicialmente haytareas para todos los esclavos.

El Maestro recibe resultados y envıanuevos trabajos.

Cuando no le quedan mas trabajosmanda senales de fin a todos losesclavos.

Los Esclavos reciben tareas,las resuelven,mandan el resultadoy reciben nuevas tareas,hasta que reciben la senal de fin.

Domingo Gim enez (Universidad de Murcia) 27 / 35

Page 30: Metodolog a de la Programaci n Paralela - UM

Esquema Maestro-Esclavo con generacion de nuevostrabajos por los esclavosSi proceso maestro entonces

generar tareas iniciales; asignar un trabajo a cada esclavo;// solicitudes representa el numero de solicitudes de trabajo que ha recibido el maestro y que no ha atendidosolicitudes = 0;Mientras solicitudes,p hacer

Recibe( resultado trabajos o solicitud);Si recibidos trabajos entonces

incluir trabajos en la bolsa;Para cada esclavo esperando hacer

Si trabajo disponible entoncesEnvia( trabajo, esclavo); solicitudes = solicitudes − 1;

finsifinpara

finsiSi recibida solicitud entonces

solicitudes = solicitudes + 1;Si trabajo disponible entonces

Envia( trabajo, esclavo del que ha recibido);finsi

finsifinmientrasenviar senal de fin a todos los esclavos;

sinoRecibe( trabajo, maestro); resolver trabajo;Envia( resultado y trabajos, maestro);Recibe( trabajo o marca de fin, maestro);Mientras no recibida marca de fin hacer

resolver trabajo; Envia( resultado y trabajos, maestro);Recibe( trabajo o marca de fin, maestro);

finmientrasfinsi

Domingo Gim enez (Universidad de Murcia) 28 / 35

Page 31: Metodolog a de la Programaci n Paralela - UM

Contenido

1 Recorrido de arbolesBacktrackingBranch and Bound

2 Trabajadores replicadosBolsa de tareasMaestro-EsclavoEsquemas descentralizados

3 Mas ejemplos

Domingo Gim enez (Universidad de Murcia) 29 / 35

Page 32: Metodolog a de la Programaci n Paralela - UM

Problemas del esquema de bolsa de tareas centralizado

La bolsa de tareas puede convertirse en un cuello de botella: muchascomunicaciones entre el Maestro y los Esclavos.

Se puede intentar mejorar:

◮ Aumentando la granularidad de las tareas: asignar varias tareas a lavez. Pero esto puede empeorar el balanceo.

◮ Quedandose los esclavos con tareas que han generado.◮ Haciendo peticion anticipada de tareas.◮ Con una jerarquıa de maestros. Dificulta la deteccion de fin.

Se puede intentar solventar el problema descentralizando la bolsa detareas.

Domingo Gim enez (Universidad de Murcia) 30 / 35

Page 33: Metodolog a de la Programaci n Paralela - UM

Bolsa de tareas descentralizada

Mucho mas compleja de gestionar.¿A quien se hacen las peticiones?¿Como se sabe que no quedan tareas por resolver?

Domingo Gim enez (Universidad de Murcia) 31 / 35

Page 34: Metodolog a de la Programaci n Paralela - UM

Solicitud cıclica de trabajoLos procesos solicitan trabajos cıclicamente.¿Cuando se acaba?Puede pasar que pida a todos y ninguno tenga trabajo,pero que mientras estaba haciendo las peticiones otro proceso que yahabıa evaluado genere nuevos trabajos.

Domingo Gim enez (Universidad de Murcia) 32 / 35

Page 35: Metodolog a de la Programaci n Paralela - UM

Algoritmo de Dijkstra de deteccion de finAl hacer la peticion se manda un testigo Blanco.Si por el camino pasa por un proceso que mando trabajo a otro el testigopasa a Negro.Si vuelve el testigo Blanco se acaba.Si vuelve Negro puede volver a pedir.

Domingo Gim enez (Universidad de Murcia) 33 / 35

Page 36: Metodolog a de la Programaci n Paralela - UM

Contenido

1 Recorrido de arbolesBacktrackingBranch and Bound

2 Trabajadores replicadosBolsa de tareasMaestro-EsclavoEsquemas descentralizados

3 Mas ejemplos

Domingo Gim enez (Universidad de Murcia) 34 / 35

Page 37: Metodolog a de la Programaci n Paralela - UM

Mas ejemplos en el capıtulo 6 del libro de Introduccion a laProgramacion Paralela.Hay un ejemplo del Problema de las reinas con esquemamaestro-esclavo con generacion de nuevas configuraciones.

Tambien ejemplos de Backtracking en el Concurso de ProgramacionParalela:2011, problema E.2012, problema D.2013, problemas F y G. El mismo con Memoria Compartida y Pasode Mensajes.2014, problemas F y G. El mismo con Memoria Compartida y Pasode Mensajes.

Domingo Gim enez (Universidad de Murcia) 35 / 35