Optimización de rendimiento, justicia y consumo energético en sistemas multicore asimétricos mediante planificación - Pousa, Adrián (2017)
Los procesadores multicore asimétricos o AMPs (AsymmetricMulticore Processors) constituyen una alternativa de bajo consumo energético a los procesadores multicore convencionales, que están formados por cores idénticos. Los AMPs integran cores rápidos y complejos de alto rendimiento, y cores más simples de bajo consumo, que ofrecen menores prestaciones. Investigaciones previas han demostrado que los AMPs ofrecen numerosos beneficios frente a los multicores convencionales, pero también plantean importantes desafíos para el software de sistema. Gran parte de las optimizaciones del software de sistema propuestas para AMPs se han realizado a nivel de sistema operativo (SO), principalmente mediante la inclusión de algoritmos de planificación conscientes de la asimetría en la plataforma. Una ventaja de esta aproximación es el hecho de que las aplicaciones no requieren modificaciones para explotar de forma efectiva los beneficios de los AMPs. La mayor parte de los algoritmos de planificación existentes para AMPs intentan optimizar el rendimiento global. Sin embargo, estos algoritmos degradan otros aspectos críticos como la justicia o la eficiencia energética de la plataforma. Además, dada su naturaleza, resulta complejo extender estas estrategias para soportar prioridades de usuario. El principal objetivo de esta tesis doctoral es superar estas limitaciones, mediante el diseño de estrategias de planificación más flexibles para AMPs. Asimismo, en esta tesis realizamos diversos estudios que muestran el impacto que la optimización de una métrica tiene en otras. Para mejorar el rendimiento global, la justicia o la eficiencia energética en AMPs, el planificador debe tener en cuenta el beneficio que cada aplicación alcanza al usar los distintos tipos de cores en un AMP. Se ha demostrado que no todos los hilos en ejecución de una carga de trabajo obtienen siempre el mismo beneficio relativo (speedup factor – SF) al usar un core de alto rendimiento frente a uno de bajo consumo. Tener en cuenta esta diversidad de SFs a la hora de distribuir los cores entre aplicaciones es clave para optimizar los distintos objetivos. Para esto, el SO debe determinar de forma efectiva el SF de cada hilo en tiempo de ejecución. Para hacer frente a este desafío, en esta tesis proponemos una metodología general para construir modelos de estimación de SF precisos basados en el uso de contadores hardware. La mayoría de los algoritmos de planificación existentes para AMPs, han sido evaluados empleando simuladores o plataformas asimétricas emuladas. Muchas de estas estrategias se han evaluado utilizando prototipos de planificadores en modo usuario. Por el contrario, en esta tesis doctoral, evaluamos los algoritmos propuestos en un entorno más realista: empleando implementaciones de los algoritmos en el kernel de SOs reales (OpenSolaris y GNU/Linux) y sobre hardwaremulticore asimétrico real.