Resumen:
|
[ES] La mayoría de los procesadores utilizados en los servidores de los centros de cómputo
de altas prestaciones disponen de núcleos que soportan la ejecución de múltiples hilos al
mismo tiempo. Se trata de núcleos ...[+]
[ES] La mayoría de los procesadores utilizados en los servidores de los centros de cómputo
de altas prestaciones disponen de núcleos que soportan la ejecución de múltiples hilos al
mismo tiempo. Se trata de núcleos denominados simultaneous multithreading (SMT). Estos
núcleos logran alcanzar la mayor productividad de entre los núcleos convencionales existentes
con un incremento mínimo del área. Por este motivo, la mayoría de los fabricantes
de procesadores (Intel, IBM, ARM, AMD, ...) ofrecen entre sus productos procesadores
SMT. La principal clave por las que obtienen mayor productividad es la compartición de
los recursos internos del núcleo (caches, unidades funcionales, banco de registros...) entre
las aplicaciones en ejecución en el mismo. Sin embargo, las instrucciones de las distintas
aplicaciones compiten entre ellas por el consumo de recursos creando interferencia en
tiempo de ejecución. En consecuencia, el tiempo de ejecución de una aplicación varía en
función de la aplicación con la que se está ejecutando haciendo, por tanto, que el tiempo
de ejecución sea impredecible.
Este Trabajo Fin de Grado propone una política de asignación de aplicaciones a núcleos
capaz de mejorar a la planificación que realiza el sistema operativo Linux. La idea
de la política es reducir la interferencia entre las parejas en ejecución a fin de maximizar
las prestaciones. En otras palabras, se persigue encontrar parejas que ofrezcan una
mayor simbiosis. Para encontrar las parejas de aplicaciones que presentan mejor simbiosis
se ha empleado de manera novedosa la conocida metodología Top-Down, que permite
categorizar las aplicaciones de manera rápida y precisa.
Antes de proceder desarrollo del algoritmo, se ha realizado un detallado estudio de
caracterización compuesto por dos partes. En primer lugar, se categorizaron todas las
aplicaciones haciendo uso de la metodología Top-Down. A continuación, se realizaron
análisis estáticos y dinámicos de mezclas de aplicaciones con el fin de estudiar su comportamiento
en compañía. Los resultados de este estudio nos permitieron averiguar qué
condiciones cumplen las parejas simbióticas. Estas condiciones se utilizaron en el algoritmo
como criterios para identificar dichas parejas en tiempo de ejecución.
El algoritmo se implementó en un ordenador con un procesador Intel Xeon E5-2620
v4. Los resultados muestran que la política de asignación propuesta en este trabajo realizar
una distribución mucho más eficiente que la realizada por Linux. El algoritmo propuesto
mejora hasta un 25% en la productividad del sistema (STP) con respecto al sistema
operativo Linux.
[-]
[EN] The majority of processors used in servers in high-performance computing centers are
made up of cores with support for simultaneous multi-threaded (SMT) execution. SMT
cores are able to achieve the highest performance ...[+]
[EN] The majority of processors used in servers in high-performance computing centers are
made up of cores with support for simultaneous multi-threaded (SMT) execution. SMT
cores are able to achieve the highest performance among existing conventional cores at
the expense of a minimum increase of the area. For this reason, most processor manufacturers
(Intel, IBM, ARM, AMD, ...) include SMT processors as part of their products.
They achieve such a high performance since they share intra-core resources (L1 caches,
functional units, physical register files, ...) among the co-running applications. In other
words, the instructions of the running applications compete among them for the use of
the shared intra-core resources, introducing inter-application interference that impacts on
the execution time. Consequently, the execution time of an application varies depending
on the co-running application, making this time to become unpredictable.
This Final Degree Project proposes a policy that allocates (couple of) applications to
cores. The idea behind this sheduler is to reduce interference between the running pairs
of applications in order to maximize performance. In other words, the aim is to find applications
that have greatest symbiosis and assing them together to the same physical core.
To do so, we have leveraged in an innovative way the well-known Top-Down methodology,
which classifies applications in a quick and precise manner.
Prior to the development of the proposed algorithm, a detailed characterization study
was carried out that can be considered split in two parts. First, all applications were categorized
using the Top-Down methodology. Next, static and dynamic analyses of application
mixes were carried out in order to study their behavior in multi-program execution.
The results of this study allowed us to establish which conditions the symbiotic couples
meet. These criteria were implemented in the algorithm to identify these pairs at runtime.
The proposed algorithm was implemented on a machine with an Intel Xeon E5-2620
v4 processor. Experimental results show that the proposed thread-to-core allocation policy
in this work makes a much more efficient distribution than that performed by Linux,
improving up to 25% the system throughput (STP) with respect to the Linux operating
system.
[-]
|