Sáez Alcaide, Juan CarlosMartín Gómez, Daniel2024-11-182024-11-182024https://hdl.handle.net/20.500.14352/110733Trabajo de Doble Grado en Ingeniería Informática y Matemáticas, Facultad de Informática UCM, Departamento de Arquitectura de Computadores y Automática, Curso 2023/2024.Multicore processors constitute the main architecture choice for general purpose systems. Its worth noting that the different cores on a processor are not truly independent one from each other, as there are usually shared resources between cores, like some levels of cache (L2 or L3), memory access channels or the DRAM controller. The contention that naturally appears when multiple applications compete for the use of shared resources among cores may lead to substantial performance degradation, and have a negative impact on fairness. Moreover, the effect on contention is unevenly distributed between applications. Partitioning shared caches has been proven effective to mitigate shared-resourcecontention effects. Lately, the main chip manufacturers (Intel and AMD) have added cache partitioning hardware support to their commercial processors. Several research articles have been published on cache partitioning, using this hardware support to effectively achieve isolation between applications by allocating different partitions to different applications. However, in these strategies all threads of a multithreaded application are assigned to the same partition. In this work we have evaluated the potential benefit of cache partitioning at the thread level, when a multithreaded application runs alone on the system. To this end we have implemented tools for cache partitioning support on top of PMCSched, which integrates it into the Linux kernel, for two different platforms: One with L2 partitioning support and another with L3 partitioning support. Experiments and subsequent analysis have been conducted on these platforms using a wide range of applications, mainly HPC (High Performance Computing) benchmarks.Los procesadores multinúcleo son actualmente la arquitectura dominante de propósito general. Cabe destacar que en este tipo de arquitecturas los distintos núcleos (cores) que integra el procesador no son procesadores totalmente independientes, ya que típicamente existen recursos compartidos entre cores, como ciertos niveles de caché (L2 o L3), los canales de acceso a memoria principal o el controlador de DRAM. El problema de tener estos recursos compartidos es que las aplicaciones que se ejecutan simultáneamente en el sistema compiten por el uso de los mismos, lo cual puede afectar al rendimiento de estas aplicaciones de forma desigual, provocando injusticia (unfairness) en el acceso a estos recursos, así como la degradación global del rendimiento del sistema. Una medida para mitigar los efectos negativos de la contención es el particionado de las cachés compartidas. Recientemente los principales fabricantes de hardware han introducido en sus procesadores comerciales (típicamente de gama alta), soporte hardware para particionar la caché desde el software del sistema. Hay numerosas propuestas de investigación que utilizan este soporte hardware de particionado de caché para garantizar aislamiento entre distintas aplicaciones, asignando distintas particiones a distintas aplicaciones. No obstante, en estas estrategias todos los hilos de una misma aplicación (multihilo) comparten la misma partición. En este trabajo se ha explorado el potencial derivado de particionar la caché entre los distintos hilos de una aplicación, en un escenario en el que la aplicación se ejecuta sola en el sistema. Para llevar a cabo nuestro análisis se ha implementado soporte en el kernel Linux para realizar particionado de caché automático (guiado por el sistema operativo) en dos plataformas distintas, una que soporta particionado para la caché L2 y otra para la caché L3. El análisis experimental se ha realizado utilizando un amplio rango de aplicaciones —principalmente HPC (High Performance Computing) — en dos procesadores de Intel, uno de ellos con microarquitectura Alder Lake yotro de la familia Intel Broadwell-EP.engAttribution-NonCommercial-NoDerivatives 4.0 Internationalhttp://creativecommons.org/licenses/by-nc-nd/4.0/Análisis del impacto del particionado de caché en el rendimiento de las aplicaciones multihiloAnalyzing the impact of cache-partitioning in the performance of multithreaded applicationsbachelor thesisopen access004(043.3)Kernel LinuxHPCParticionado de cachéIntel CATContención de recursosPMCSchedPMTrackIntel Alder LakeIntel Broadwell-EPCache partitioningResource contentionInformática (Informática)33 Ciencias Tecnológicas