RT Generic T1 Soporte de sistema operativo y runtime system para explotación de maleabilidad en procesadores multinúcleo T2 Operating system and runtime system support for exploiting malleability on multicore processors A1 Rubio Moreno, Javier AB Los procesadores multinúcleo, que integran múltiples cores de procesamiento en el mismo chip, constituyen actualmente la arquitectura dominante de propósito general. La tendencia de integración de un cada vez mayor número de núcleos, especialmente en procesadores del segmento de servidores, supone una gran oportunidad para la aceleración de aplicaciones que emplean múltiples hilos para el reparto del trabajo a realizar. Sin embargo, los cuellos de botella presentes de forma inherente en las aplicaciones paralelas –p.ej., fragmentos de código secuencial–, unido a los habituales problemas de contención en los recursos compartidos entre núcleos –como el ancho de banda con memoria–, pueden limitar de forma sustancial la escalabilidad de muchas aplicaciones, impidiendo la utilización efectiva de todos los núcleos de la plataforma.Para hacer frente a este problema, e incrementar el grado de utilización del procesador, en este TFG se ha desarrollado un sistema que otorga núcleos extra a aplicaciones maleables –con capacidad de cambiar dinámicamente su número de hilos–, cuando otras aplicaciones no maleables que se ejecutan simultáneamente en el sistema dejan núcleos inactivos. El sistema requiere la modificación del kernel del sistema operativo y del runtime system, que interactúan para hacer un uso muy eficiente de los núcleos inactivos. Esto permite trasladar automáticamente los beneficios de nuestro sistema a las aplicaciones sin requerir la modificación de las mismas. Como prueba de concepto, se ha desarrollado un prototipo del sistema sobre el kernel Linux y la implementación de GNU del runtime system de OpenMP, en la cual se ha introducido soporte de maleabilidad para aplicaciones basadas en bucles paralelos. Nuestros resultados revelan que el sistema desarrollado permite incrementar sustancialmente el rendimiento global en cargas de trabajo multiprogramadas. AB Multi-core processors, which integrate multiple processing cores on the same chip, are currently the dominant general-purpose architecture. The trend of integrating an increasing number of cores, especially in processors in the server segment, represents a great opportunity for the acceleration of applications that use multiple threads to distribute work. However, the inherent bottlenecks in parallel applications –e.g., sequential code fragments– coupled with the usual contention problems in shared resources between cores –such as memory bandwidth– can substantially limit the scalability of many applications, preventing the effective utilization of all cores on the platform.To address this problem, and increase the degree of processor utilization, this TFG presents a system that grants extra cores to malleable applications –with the ability to dynamically change their number of threads–, when other non-malleable applications running simultaneously on the system leave idle cores. The system requires modification of the operating system kernel and runtime system, which interact to make very efficient use of idle cores. This allows the benefits of our system to be automatically transferred to the applications without requiring modification of the applications themselves. As a proof of concept, a prototype has been developed on the Linux kernel and the GNU implementation of the OpenMP runtime system, in which malleability support for parallel loop-based applications has been introduced. Our results reveal that the system allows to substantially increase the overall performance in multiprogrammed workloads. YR 2023 FD 2023 LK https://hdl.handle.net/20.500.14352/104373 UL https://hdl.handle.net/20.500.14352/104373 LA spa NO Trabajo de Fin de Grado en Desarrollo de Videojuegos, Facultad de Informática UCM, Departamento de Arquitectura de Computadores y Automática, Curso 2022/2023. DS Docta Complutense RD 7 abr 2025