Adaptación dinámica de hilos en entornos multinúcleo: desarrollo de extensiones de maleabilidad en LLVM
Loading...
Official URL
Full text at PDC
Publication date
2025
Authors
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citation
Abstract
En este TFG se lleva a cabo la implementación de soporte transparente de maleabilidad para aplicaciones paralelas con modificaciones en el runtime system de OpenMP. Una aplicación maleable se puede entender como aquella con la capacidad de incrementar o reducir el número de hilos o workers con los que trabaja en tiempo de ejecución, mediante un gestor de recursos externo.
Trabajos previos sobre la materia han revelado que el uso de la maleabilidad en un sistema dado conlleva a un uso más eficiente de los recursos, resultando en una mejoría en el rendimiento global de un sistema, además de una eficiencia energética mayor. En este trabajo se explota maleabilidad oportunista, siendo esta la maleabilidad que se activa cuando se detectan ciclos inactivos en el sistema por aplicaciones no maleables. Para este acometido se utiliza un gestor de elasticidad implementado en el kernel como parte del trabajo previo, este gestor conocido como Elasticity Manager (EM), se comunica con las aplicaciones maleables para notificar de la existencia de cores inactivos que son sujetos a ser usados bajo demanda, y de esta forma obtener una mejora del rendimiento de forma oportunista. En este TFG se desarrolla el soporte necesario en el runtime system de OpenMP del proyecto LLVM conocido como libomp para poder explotar este tipo de elasticidad/maleabilidad en aplicaciones OpenMP basadas en bucles paralelos, sin requerir de la modificación de las aplicaciones.
Se lleva a cabo un análisis experimental de este soporte sobre el Elasticity Manager, haciendo uso de una plataforma multinúcleo de Intel con 16 cores. Los resultados obtenidos revelan que el soporte desarrollado en el TFG es efectivo, permitiendo que el EM mejore el rendimiento y la productividad global del sistema.
In this work an implementation of transparent support for malleability in parallel applications which use the OpenMP runtime system is developed. A malleable application is the one which can increase or decrease the number of threads or worker processes of the main process at runtime by the use of an external manager. Previous work in this area shows that malleability increases the efficiency of resource usage, resulting in a better performance and energetic efficiency. This work exploits opportunistic malleability, which is the type of malleability that is activated with the detection of inactive cycles in the system related to non malleable applications. In this work an elasticity manager is used, known as Elasticity Manager(EM), which communicates with malleable applications in order to announce the existence of inactive cores which can be used by demand, with a spected improvement in performance in an opportunistic manner. In this work the needed support in the runtime system of LLVM’s implementation of the OpenMP specification is developed so that malleability in OpenMP applications based on parallel loops can be exploited without the need for the modification of such applications An experimental analysis of this support is undergone using an Intel multicore system with 16 cores. The results show that the developments of this work are effective, allowing an improvement in the global performance of the system
In this work an implementation of transparent support for malleability in parallel applications which use the OpenMP runtime system is developed. A malleable application is the one which can increase or decrease the number of threads or worker processes of the main process at runtime by the use of an external manager. Previous work in this area shows that malleability increases the efficiency of resource usage, resulting in a better performance and energetic efficiency. This work exploits opportunistic malleability, which is the type of malleability that is activated with the detection of inactive cycles in the system related to non malleable applications. In this work an elasticity manager is used, known as Elasticity Manager(EM), which communicates with malleable applications in order to announce the existence of inactive cores which can be used by demand, with a spected improvement in performance in an opportunistic manner. In this work the needed support in the runtime system of LLVM’s implementation of the OpenMP specification is developed so that malleability in OpenMP applications based on parallel loops can be exploited without the need for the modification of such applications An experimental analysis of this support is undergone using an Intel multicore system with 16 cores. The results show that the developments of this work are effective, allowing an improvement in the global performance of the system
Description
Trabajo de Fin de Grado en Ingeniería Informática, Facultad de Informática UCM, Departamento de Arquitectura de Computadores y Automática, Curso 2024/2025













