Autooptimizacin en esquemas paralelos iterativos Autor Juan Pedro

  • Slides: 59
Download presentation
Autooptimización en esquemas paralelos iterativos Autor: Juan Pedro Martínez Gallar Directores: Domingo Giménez Cánovas

Autooptimización en esquemas paralelos iterativos Autor: Juan Pedro Martínez Gallar Directores: Domingo Giménez Cánovas Universidad de Murcia Francisco Almeida Rodríguez Universidad La Laguna 1

ÍNDICE 1 - Introducción. Situación histórica. Objetivos. Motivación. Optimización. Autooptimización. El problema del mapeo.

ÍNDICE 1 - Introducción. Situación histórica. Objetivos. Motivación. Optimización. Autooptimización. El problema del mapeo. Metodologías: Tesis, Modelos. Esquemas iterativos, paralelos, homogéneos y heterogéneos. 2. - Autooptimización en sistemas homogéneos. 3. - Autooptimización en sistemas heterogéneos. 4. - Metaheurísticas en la autooptimización. 5. - Conclusiones y trabajos futuros. 2

INTRODUCCIÓN 3

INTRODUCCIÓN 3

Situación histórica. Objetivos. Motivación. Evolución de los sistemas informáticos Mayor complejidad Desarrollo de técnicas

Situación histórica. Objetivos. Motivación. Evolución de los sistemas informáticos Mayor complejidad Desarrollo de técnicas para garantizar uso eficiente de recursos Software diseñado, implementado y optimizado sobre sistemas concretos Necesidad de disponer de técnicas que aseguren el uso en sistemas para los que no se diseñaron originalmente sin intervención humana (autotuning): ATLAS, LFC, FFTW. . . Metodología para adaptación a sistemas homogéneos, heterogéneos 4

Situación histórica. Objetivos. Motivación. Objetivo Tesis: ”Adaptación automática del software iterativo paralelo en sistemas

Situación histórica. Objetivos. Motivación. Objetivo Tesis: ”Adaptación automática del software iterativo paralelo en sistemas para los que no fue propuesto inicialmente” Objetivos Parciales: Desarrollo metodologías en sistemas homo y heterogéneos Uso de técnicas metaheurísticas en sist. heterogéneos Desarrollo metodología para otros esquemas computacionales Reutilización Mejora del ciclo vida del software 5

Optimización: necesario para lograr uso eficiente de recursos Optimización Código Uso del código Diseño

Optimización: necesario para lograr uso eficiente de recursos Optimización Código Uso del código Diseño Diferentes niveles de optimización: Código fuente Compilación Tº Ejecución. . . 6

Optimización uso de código Trabajo adicional usuario final, puede no experto a nuevos sistemas

Optimización uso de código Trabajo adicional usuario final, puede no experto a nuevos sistemas Desarrollar técnicas para lograr la adaptación del software a la arquitectura de destino para reducir tiempos de ejecución de forma automática Autooptimización Liberar al usuario final 7

Autooptimización Sistemas Homogéneos Mayor Complejidad Sistemas Heterogéneos Necesidad de lograr la optimización automática del

Autooptimización Sistemas Homogéneos Mayor Complejidad Sistemas Heterogéneos Necesidad de lograr la optimización automática del software: autooptimización Posibilidades a) Reescribir el código b) Crear metodología adaptación Estudio e implementación de técnicas de autooptimización en esquemas paralelos iterativos: objetivo final Beneficio a) Evitar intervención humana b) Reducir costes tº y $ 8

Autooptimización Optimización basada en la modelización del tiempo de ejecución: t(s, AP, SP) s:

Autooptimización Optimización basada en la modelización del tiempo de ejecución: t(s, AP, SP) s: Tamaño del problema AP: Parámetros algorítmicos (tamaño bloque, nº procesos, nº procesadores, procesos/procesadores. . . ) SP: Parámetros del sistema (dependen de la arquitectura y el tipo de sistema: homogéneo / heterogéneo) tc: tiempo de operación básica computación ts: tiempo de inicio de comunicaciones tw: tiempo de envío de un dato básico 9

El problema de Optimización Objetivo: min t(s, vap, SP) vap Є AP Asignación de

El problema de Optimización Objetivo: min t(s, vap, SP) vap Є AP Asignación de procesadores a las necesidades software Técnicas: Grafos de precedencia Optimización analítica Árboles de asignación Estrategias heterogéneas (Ho. He, He. Ho) Metaheurísticas …… 10

El problema de Optimización Cuestiones relevantes: Particionado de datos Análisis de dependencias Asignación de

El problema de Optimización Cuestiones relevantes: Particionado de datos Análisis de dependencias Asignación de recursos Equilibrado de carga Hipótesis: Construcc. sotfware Modelado tº ejecución Autooptimización Necesidad de establecer una metodología de trabajo 11

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos 12

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos 12

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos Aplicaciones en

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos Aplicaciones en esquemas paralelos iterativos 13

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos Aplicaciones en

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos Aplicaciones en esquemas paralelos iterativos Desarrollo metodologías autoopt. sist. homogéneos 14

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos Aplicaciones en

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos Aplicaciones en esquemas paralelos iterativos Desarrollo metodologías autoopt. sist. homogéneos Desarrollo metodologías autoopt. sist. heterogéneos 15

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos Aplicaciones en

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos Aplicaciones en esquemas paralelos iterativos Desarrollo metodologías autoopt. sist. homogéneos Desarrollo metodologías autoopt. sist. heterogéneos Estrategias heterogéneas (Ho. He, He. Ho) 16

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos Aplicaciones en

Metodología Tesis Etapas de la tesis Construir modelo tº ejecución algoritmos iterativos Aplicaciones en esquemas paralelos iterativos Desarrollo metodologías autoopt. sist. homogéneos Desarrollo metodologías autoopt. sist. heterogéneos Estrategias heterogéneas (Ho. He, He. Ho) Metaheurísticas 17

Metodología de autooptimización 18

Metodología de autooptimización 18

Construcción modelo tº ejecución 19

Construcción modelo tº ejecución 19

Esquemas iterativos Esquema iterativos usados en multitud de problemas: Progr. Dinámica, Dinámica Dijkstra, genéticos,

Esquemas iterativos Esquema iterativos usados en multitud de problemas: Progr. Dinámica, Dinámica Dijkstra, genéticos, sist. ecuaciones. . . Ejecución de un conjunto de instrucciones de forma iterativa hasta la condición de fin Tipos Secuenciales Homogéneos Paralelos Heterogéneos Caso Prueba (Programación dinámica) Diferentes Esquemas Diferentes formas de calcular los datos: por filas, columnas, diagonales 20

Programación dinámica Por filas 21

Programación dinámica Por filas 21

Programación dinámica Por filas Por columnas 22

Programación dinámica Por filas Por columnas 22

Programación dinámica Por filas Por columnas Por diagonales 23

Programación dinámica Por filas Por columnas Por diagonales 23

Programación dinámica Usados como ejemplos: Problema monedas, monedas Mochila Definición N: cantidad a devolver

Programación dinámica Usados como ejemplos: Problema monedas, monedas Mochila Definición N: cantidad a devolver n: número tipos de monedas vi: valor de la moneda de tipo i, vi>0 qi: cantidad de monedas de tipo i, qi>0 c[i, j]= mínimo número de monedas para devolver cantidad j usando hasta los i tipos de monedas Ecuación c[i, j] = min { c[i-1, j-k*vi]+k}, 1<=i<=n, 1<=j<=N, k=0, . . , j/vi Objetivo: c[n, N] 24

Programación dinámica FILAS Esquema Secuencial COLUMNAS for i=1 to numero_de_decisiones for j=1 to tamaño_problema

Programación dinámica FILAS Esquema Secuencial COLUMNAS for i=1 to numero_de_decisiones for j=1 to tamaño_problema obtener la solución óptima con i decisiones y tamaño de problema j endfor 25

Esquemas iterativos Esquema Paralelo (dependencia de datos) for i=1 to numero_de_decisiones En Paralelo: for

Esquemas iterativos Esquema Paralelo (dependencia de datos) for i=1 to numero_de_decisiones En Paralelo: for j=1 to tamaño_problema obtener la solución óptima con i decisiones y tamaño de problema j endfor Comunicaciones entre procesos end. En. Paralelo endfor 26

AUTOOPTIMIZACIÓN EN SISTEMAS HOMOGÉNEOS 27

AUTOOPTIMIZACIÓN EN SISTEMAS HOMOGÉNEOS 27

Autooptimización en sistemas homogéneos Homogéneos: características similares no exactamente iguales Relativa facilidad construir modelo

Autooptimización en sistemas homogéneos Homogéneos: características similares no exactamente iguales Relativa facilidad construir modelo tiempo ejecución Determinar número procesos (p) = procesadores (P) Pruebas realizadas sobre diferentes sistemas: SOLARIS/SUN (SUNEt) (Un. Murcia) Pen. FE (Un. Murcia) ORIGIN 2000 (Un. Polit. Cat. ) HPC 160 (Inter e intranodo) (Un. Polit. Cart. ) KIPLING TORC (Univ. Polit. Val. ) (Univ. Tennessee) HOMOGÉNEOS HETEROGÉNEOS 28

Autooptimización en sistemas homogéneos DEPENDENCIA DE DATOS (VERSIONES A y B) 29

Autooptimización en sistemas homogéneos DEPENDENCIA DE DATOS (VERSIONES A y B) 29

Autooptimización en sistemas homogéneos Cociente de tiempos de ejecución entre versiones A y B

Autooptimización en sistemas homogéneos Cociente de tiempos de ejecución entre versiones A y B en SUNEt Tamaño 10. 000 Tamaño 50. 000 Complejidad Número procesadores Tamaño 100. 000 Tamaño 500. 000 Complejidad Número procesadores 30

Autooptimización en sistemas homogéneos Modelo teórico: Ttotal = Tcomputación + Tcomunicación Coste secuencial: Coste

Autooptimización en sistemas homogéneos Modelo teórico: Ttotal = Tcomputación + Tcomunicación Coste secuencial: Coste computacional paralelo (qi grande): Coste comunicaciones: Proceso Pp-1 Parámetro de complejidad o granularidad para aumentar comput. Los SP son tc , ts y tw El único AP es p 31

Autooptimización en sistemas homogéneos Diferentes posibilidades estimar parámetros sistema Diferencias en speed-up de sistemas

Autooptimización en sistemas homogéneos Diferentes posibilidades estimar parámetros sistema Diferencias en speed-up de sistemas Utilidad autooptimización 32

Autooptimización en sistemas homogéneos Tiempos de comunicaciones en SUNEt (izq) y HPC 160 (der)

Autooptimización en sistemas homogéneos Tiempos de comunicaciones en SUNEt (izq) y HPC 160 (der) Ratios de tiempos de comunicaciones en SUNEt (izq) y HPC 160 (der) 33

Autooptimización en sistemas homogéneos Comparativa entre el número de procesos con los que se

Autooptimización en sistemas homogéneos Comparativa entre el número de procesos con los que se obtiene mejor tiempo de ejecución El sistema debe decidir cómo ejecutar el algoritmo 34

Autooptimización en sistemas homogéneos Media de los speedups máximos variando tamaño y granularidad Speedup

Autooptimización en sistemas homogéneos Media de los speedups máximos variando tamaño y granularidad Speedup variando procesadores, granularidad y tamaño 35

Autooptimización en sistemas homogéneos Estimación de SP aritméticos: resolviendo un problema reducido Comparativa del

Autooptimización en sistemas homogéneos Estimación de SP aritméticos: resolviendo un problema reducido Comparativa del número de procesadores seleccionados con diferentes métodos con respecto al tmb Estimación de SP de comunicac: • Ping-pong (CP 1) • Solución de problema reducido variando el número de procesadores (CP 2) • Solución de problema reducido variando el número de procesadores y el tamaño del problema (CP 3) 36

Autooptimización en sistemas homogéneos Cocientes entre tiempos de ejecución obtenido con los diferentes métodos

Autooptimización en sistemas homogéneos Cocientes entre tiempos de ejecución obtenido con los diferentes métodos con respecto al tmb 37

Autooptimización en sistemas homogéneos Comparación con usuarios: • Voraz (UV): usa todos los procesadores

Autooptimización en sistemas homogéneos Comparación con usuarios: • Voraz (UV): usa todos los procesadores disponibles • Conservador (UC): usa la mitad de los procesadores disponibles • Experto (UE): usa un número de procesadores en función del tamaño del problema Cocientes entre tiempos de ejecución obtenido con los diferentes usuarios con respecto al tmb 38

Autooptimización en sistemas homogéneos Cocientes entre tiempos de ejecución obtenidos con los diferentes usuarios

Autooptimización en sistemas homogéneos Cocientes entre tiempos de ejecución obtenidos con los diferentes usuarios y métodos con respecto al tmb 39

AUTOOPTIMIZACIÓN EN SISTEMAS HETEROGÉNEOS 40

AUTOOPTIMIZACIÓN EN SISTEMAS HETEROGÉNEOS 40

Autooptimización en sistemas heterogéneos Heterogéneos: agrupar elementos del sistema según características similares no exactamente

Autooptimización en sistemas heterogéneos Heterogéneos: agrupar elementos del sistema según características similares no exactamente iguales. Mayor dificultad construir modelo tiempo ejecución. Buscar parámetros algorítmicos / min tº ejec t(s, AP, SP) AP= d, p d=(d 0, d 1, . . . , d. P-1) SP= Más complejos Construir algoritmos heterogéneos Diferentes posibilidades Desarrollo métodos (exactos y/o aproximados de mapeo (asignar procesos a procesadores)) 41

Autooptimización en sistemas heterogéneos Distribución del trabajo y asignación de procesos a procesadores en

Autooptimización en sistemas heterogéneos Distribución del trabajo y asignación de procesos a procesadores en un esquema de programación dinámica, en algoritmos heterogéneos (He. Ho) (a) y homogéneos(Ho. He) (b) 42

Autooptimización en sistemas heterogéneos Posibilidades de representación del árbol de asignación: 43

Autooptimización en sistemas heterogéneos Posibilidades de representación del árbol de asignación: 43

Autooptimización en sistemas heterogéneos Árbol de asignación con 2 tipos de procesadores y p

Autooptimización en sistemas heterogéneos Árbol de asignación con 2 tipos de procesadores y p procesos Necesidad de limitar la altura del mismo Cada nodo lleva asociada 3 cotas: EET, LET, GET. Uso de técnicas de búsqueda en árboles para optimizar el modelo de tº ejecución 44

Autooptimización en sistemas heterogéneos Desviación con respecto al tmb obtenido experimentalmente, de los tiempos

Autooptimización en sistemas heterogéneos Desviación con respecto al tmb obtenido experimentalmente, de los tiempos obtenidos con diferentes métodos y usuarios en una combinación de TORC 1 17 P 4 + 1 Ath + 1 SPIII + 8 DPIII (a) y 1 Ath + 1 SPIII + 8 DPIII (b) a) b) 45

Autooptimización en sistemas heterogéneos Resultados de simulaciones diversas 46

Autooptimización en sistemas heterogéneos Resultados de simulaciones diversas 46

METAHEURÍSTICAS EN LA AUTOOPIMIZACIÓN 47

METAHEURÍSTICAS EN LA AUTOOPIMIZACIÓN 47

Metaheurísticas en la autooptimización OBJETIVO FINAL min tº ejec Minimización analítica Minimización numérica Métodos

Metaheurísticas en la autooptimización OBJETIVO FINAL min tº ejec Minimización analítica Minimización numérica Métodos exhaustivos Métodos aproximados Métodos heurísticos 48

Metaheurísticas en la autooptimización Esquema General de las Metaheurísticas Inicializar(S) while no se cumple

Metaheurísticas en la autooptimización Esquema General de las Metaheurísticas Inicializar(S) while no se cumple Condicionde. Fin(S) do SS = Obtener. Subconjunto(S); if |SS|>1 then SS 1= Combinar(SS); else SS 1=SS; end SS 2 = Mejorar(SS 1); S = Incluir. Soluciones(SS 2) end 49

Metaheurísticas en la autooptimización Esquema de la tećnica de Búsqueda Dispersa (particularización) Crear. Conjunto.

Metaheurísticas en la autooptimización Esquema de la tećnica de Búsqueda Dispersa (particularización) Crear. Conjunto. Inicial S; Generar. Conjunto. Referencia RS; while Convergencia no alcanzada do Seleccionar elementos a combinar; Combinar elementos seleccionados; Mejorar elementos combinados; Actualizar. Conjunto. Referencia RS con los elementos más prometedores y los más dispersos end 50

Metaheurísticas en la autooptimización Mapeo como un problema de optimización Representación y codificación soluciones:

Metaheurísticas en la autooptimización Mapeo como un problema de optimización Representación y codificación soluciones: (do, d 1, . . . , d. P-1) di = nº procesos asignados al procesador i Gran cantidad de alternativas a la hora de instanciar el algoritmo: 51

Metaheurísticas en la autooptimización Comparación entre las posibilidades de opciones de selección e inclusión.

Metaheurísticas en la autooptimización Comparación entre las posibilidades de opciones de selección e inclusión. Porcentaje en que mejora la búsqueda dispersa respecto al backtracking con poda Tiempos e iteraciones para diferentes métodos de selección e inclusión en el conjunto de referencia 52

Metaheurísticas en la autooptimización Simulaciones para comparar Búsqueda dispersa y backtracking con poda 53

Metaheurísticas en la autooptimización Simulaciones para comparar Búsqueda dispersa y backtracking con poda 53

Metaheurísticas en la autooptimización Pruebas en Kipling 54

Metaheurísticas en la autooptimización Pruebas en Kipling 54

Metaheurísticas en la autooptimización Relación entre tiempos de decisión y modelado en una simulación

Metaheurísticas en la autooptimización Relación entre tiempos de decisión y modelado en una simulación concreta 55

CONCLUSIONES Y TRABAJOS FUTUROS 56

CONCLUSIONES Y TRABAJOS FUTUROS 56

Conclusiones y Trabajos Futuros Optimización Autooptimización Hipótesis investigación tº = f(s, AP, SP) +

Conclusiones y Trabajos Futuros Optimización Autooptimización Hipótesis investigación tº = f(s, AP, SP) + Búsqueda óptimo Métodos exactos (Búsqueda exhaustiva) Alternativas Métodos aproximados Métodos metaheurísticos 57

Conclusiones y Trabajos Futuros Resultados generales en sistemas homogéneos(a), heterogéneos (b) y con el

Conclusiones y Trabajos Futuros Resultados generales en sistemas homogéneos(a), heterogéneos (b) y con el uso de metaheurísticas(c) b) a) a) b) c) 58

Conclusiones y Trabajos Futuros Aportaciones Trabajos futuros Vec. Par 04. Sistemas homogéneos. Mejorar el

Conclusiones y Trabajos Futuros Aportaciones Trabajos futuros Vec. Par 04. Sistemas homogéneos. Mejorar el modelado el tiempo de ejecución, sobre todo en sistemas heterogéneos Hetero. Par 04, Parallel Computing 04. Sistemas heterogéneos. Para 06, Maeb 07. Metaheurísticas. Aplicación en diferentes esquemas algorítmicos (divide & conquer, master - slave, backtracking. . . ) Metaheurísticas diversas (tabú, temple simulado, géneticos. . . Cluster 07. ICCS 08. Journal of Supercomping 09. Construcción de un entorno para la prueba y evaluación de metaheurísticas. 59