Contention-aware scheduling and resource management for emerging multicore architectures

  1. García García, Adrián
Dirigida por:
  1. Manuel Prieto Matías Director
  2. Juan Carlos Saez Alcaide Director

Universidad de defensa: Universidad Complutense de Madrid

Fecha de defensa: 14 de diciembre de 2021

Tribunal:
  1. Luis Piñuel Moreno Presidente
  2. Daniel Ángel Chaver Martínez Secretario
  3. Pablo Enrique Ibáñez Marín Vocal
  4. Javier Setoain Rodrigo Vocal
  5. Enrique Salvador Quintana Ortí Vocal
Departamento:
  1. Arquitectura de Computadores y Automática

Tipo: Tesis

Resumen

Los procesadores multinúcleo son actualmente la arquitectura más usada por la mayoría de sistemas de computación de propósito general. Los avances tecnológicos han permitido integrar progresivamente en el mismo chip más cores y aumentar los tamaños de caché. No obstante, la contención de recursos compartidos todavía representa un reto importante que afrontar. En esta tesis se han desarrollado diversas estrategias a nivel del sistema operativo, implementadas en el kernel Linux, para lidiar de forma eficaz con los efectos adversos de la contención y optimizar la justicia global del sistema. La primera aportación destacable de esta tesis es CAMPS, un planificador consciente de la contención que optimiza justicia en procesadores multicore asimétricos. En esta tesis evaluamos la eficacia de CAMPS en hardware multicore asimétrico real. Estas arquitecturas combinan en la misma plataforma cores complejos (big) de alto rendimiento, con cores más simples (small) de bajo consumo, ofreciendo todos un mismo repertorio de instrucciones. De esta forma, una aplicación puede sufrir una degradación sustancial del rendimiento debido al efecto combinado de la competición por el uso de cores big y de la contención de recursos compartidos. CAMPS está equipado con un mecanismo ligero y eficiente -basado en el uso de contadores hardware- que permite registrar el progreso de cada aplicación en los distintos tipos de core y bajo distintos niveles de contención. Con esta información, CAMPS distribuye de forma justa el tiempo de uso de los cores big entre las distintas aplicaciones. La segunda gran aportación de esta tesis es PBBCache, un simulador paralelo de código abierto que permite agilizar el proceso de diseño y evaluación de políticas de particionado de cache, tanto estrictas como en clusters. En esta tesis hemos empleado el soporte hardware de particionado, introducido recientemente en multicores comerciales, y hemos analizado la utilidad de diferentes estrategias de particionado. No obstante, encontrar la solución óptima de particionado --lo cual es esencial para guiar el diseño de nuevas estrategias-- es un problema difícil de resolver. De hecho, encontrar una solución óptima, incluso para políticas de particionado estricto --donde cada partición es asignada a una sola aplicación-- es ya un problema NP-hard. Permitir la compartición de una o varias particiones entre varias aplicaciones (particionado en cluster), amplía aún más las dimensiones del espacio de búsqueda. Para reducir los tiempos de simulación, PBBCache implementa la primera estrategia paralela de memoria distribuida que permite determinar de forma efectiva la solución óptima de particionado para diferentes objetivos de optimización. Por último, en esta tesis proponemos LFOC, una estrategia de particionado en cluster a nivel del sistema operativo que optimiza la justicia manteniendo un buen rendimiento global en la plataforma. LFOC clasifica en tiempo de ejecución las aplicaciones en varias categorías en base a su grado de sensibilidad a la contención cache, y a su demanda efectiva de espacio en ésta. Para mejorar la justicia, LFOC prioriza las aplicaciones de tipo aplicaciones que requieren mucho espacio en cache para no ver mermado su rendimiento en el reparto de espacio de cache, y confina aquellas aplicaciones que tienen un comportamiento de tipo streaming (aplicaciones agresoras) en un conjunto reducido de particiones de cache pequeñas.