Gestión de recursos energéticamente eficiente para aplicaciones paralelas basadas en tareas en entornos multi-aplicación

  1. Costero Valero, Luis María
Dirigida por:
  1. Katzalin Olcoz Directora
  2. Francisco Tirado Fernández Director
  3. Francisco Daniel Igual Peña Director

Universidad de defensa: Universidad Complutense de Madrid

Fecha de defensa: 28 de enero de 2021

Tribunal:
  1. Manuel Prieto Matías Presidente
  2. José Luis Risco Martín Secretario
  3. Rafael Asenjo Plaza Vocal
  4. Jose Daniel Garcia Sanchez Vocal
  5. Andrea Bartolini Vocal
Departamento:
  1. Arquitectura de Computadores y Automática

Tipo: Tesis

Resumen

El fin del escalado de Dennard y la llegada de la era post-Moore ha supuesto una gran evolución en la forma de obtener el rendimiento y eficiencia energética en los procesadores modernos. Desde un incremento constante en la frecuencia a principios de los 2000, el incremento del número de núcleos a frecuencias relativamente moderadas se ha impuesto como la tendencia actual. El aumento del número de núcleos ha venido acompañado por el aumento de la heterogeneidad, tanto dentro del procesador incorporando distintos tipos de núcleos en el mismo procesador, como la incorporación de otros elementos de computo específicos, ofreciendo diferentes grados de rendimiento y eficiencia energética. La evolución de los procesadores no sólo ha venido dictada por el aumento del número de núcleos, sino que ha venido acompañada por la incorporación de diferentes técnicas permitiendo la adaptación de las arquitecturas de forma dinámica al entorno y a las aplicaciones. Entre otras, técnicas como el escalado de frecuencia o la limitación de consumo son ampliamente utilizadas como métodos para incrementar el consumo y/o la eficiencia energética. Asociada a la evolución de los procesadores, las aplicaciones también han evolucionado para aprovechar todos los recursos ofrecidos por las mismas. De forma similar, las aplicaciones modernas ofrecen un conjunto de parámetros a modificar que permiten un óptimo aprovechamiento de todos los recursos. Aunque estos parámetros suelen ser ajustados antes del comienzo de la ejecución, el ajuste de estos parámetros de forma dinámica favorece la obtención de un mayor rendimiento y eficiencia energética a costa de un proceso de decisión mucho más complejo. En este escenario, los gestores de recursos ya que no solo tienen que encargarse de realizar un reparto de recursos adecuado, sino de modificar de forma dinámica y conjunta los distintos parámetros. Además, el alto rendimiento ofrecido por las nuevas arquitecturas ha favorecido escenarios de co-scheduling. Este escenario complica aún más la labor de los gestores de recursos donde tienen que propiciar un escenario de cooperación entre diferentes aplicaciones por el uso de los mismos recursos para satisfacer los requisitos de todas ellas de forma simultánea. El objetivo de esta tesis es el diseño, implementación y validación de diferentes propuestas para la gestión de recursos de forma dinámica para aplicaciones paralelas, maximizando tanto el rendimiento como la eficiencia energética. Para ello, en esta tesis se muestra como diferentes técnicas de escalado de voltaje y planificación se pueden integrar dentro de los runtimes encargados de la gestión paralela de las aplicaciones para maximizar la eficiencia energética en plataformas asimétricas, así cómo se puede incorporar restricciones de potencia a los mismos para gestionar de forma dinámica la potencia disponible en servidores modernos, alcanzando resultados óptimos, similares a los obtenidos mediante mecanismos hardware. Además, el gran número de parámetros disponibles (tanto de aplicación como de la plataforma), así como las posibles relaciones entre ellas proporcionan escenarios muy complejos difícilmente manejables por aproximaciones más tradicionales. Con el propósito de gestionar estos escenarios, en esta tesis se muestra la creación de una solución completa para la gestión de múltiples aplicaciones en tiempo real mediante el uso de Aprendizaje por Refuerzo. Nuestra propuesta muestra cómo, a través del uso de técnicas de Aprendizaje Automático, es posible la gestión de escenarios modernos de gestión de recursos sin necesidad de realizar un modelado previo del mismo, identificando de forma automática las posibles relaciones entre parámetros mientras se persigue una meta multi-objetivo. En concreto, se muestra como este sistema es capaz de gestionar múltiples procesos de codificación de vídeo en tiempo real de forma simultánea, satisfaciendo requisitos de rendimiento, calidad y consumo simultáneamente.