TAZ-TFG-2021-4585


Análisis y Estudio de los Mecanismos de Sincronización Far Atomics en Multiprocesadores ARM.

Vidarte Llera, José Manuel
Suárez Gracia, Darío (dir.) ; Valero Bresó, Alejandro (dir.)

Universidad de Zaragoza, EINA, 2021
Departamento de Informática e Ingeniería de Sistemas, Área de Arquitectura y Tecnología de Computadores

Graduado en Ingeniería Informática

Resumen: La latencia de acceso a memoria en aplicaciones paralelas con memoria compartida resulta un aspecto crítico en su desempeño en rendimiento. Este hecho resulta cada vez más común debido a la consolidación del paradigma multiprocesador y a la continua demanda de mayores recursos computacionales y de memoria por parte de las aplicaciones paralelas. En el ámbito de los multiprocesadores, esta tendencia supone que año tras año, además de desarrollar nuevos nodos tecnológicos más pequeños, también se implementen diversas mejoras a nivel de arquitectura y microarquitectura de estos chips. Hace unos años, ARM introdujo su nueva microarquitectura ARMv8.1, la cual incluye un número considerable de cambios en su repertorio de instrucciones, destacando la extensión LSE (Large System Extensions) cuyo objetivo es optimizar las instrucciones atómicas, denominando a estas nuevas operaciones como far atomics. El presente trabajo se ha enfocado principalmente en realizar un análisis de las operaciones far atomics respecto a otras más convencionales como son las operaciones load-link/store-conditional, haciendo uso de la suite de benchmarks INNCABS, la cual consta de aplicaciones con tareas paralelas de grano fino. La primera contribución de este trabajo es un análisis en profundidad acerca de la capacidad del runtime de C++ para la creación y gestión de tareas paralelas en aplicaciones muy demandantes, como es el caso de los benchmarks INNCABS, comparando esta solución frente a la utilización de una biblioteca de terceros como son los Threading Building Blocks (TBB) de Intel. TBB gestiona estas funciones mediante un thread pool. El uso de una biblioteca externa al estándar C++11 como TBB resulta muy conveniente para la gestión de tareas de grano fino, puesto que el runtime de C++ supone una sobrecarga muy grande que lastra el rendimiento de estas aplicaciones. En concreto, las implementaciones en C++ mediante la directiva std::async requieren lanzar un proceso por tarea, mientras que con TBB la cantidad de procesos (hilos) se puede regular, siendo óptimo un proceso por cada núcleo físico del sistema, provocando una mejora en los tiempos de ejecución de hasta tres órdenes de magnitud en algunos escenarios. Por otro lado, la comparativa de far atomics frente a load-link/store-conditional no muestra suficientes diferencias favorables en rendimiento hacia el nuevo conjunto de operaciones atómicas. No obstante, en este documento se razonan ciertas hipótesis en detalle por las que se cree que se han obtenido estos resultados. Por ejemplo, una primera limitación puede ser el procesador objeto de estudio, el cual utiliza la primera versión del conjunto de instrucciones LSE y quizás no disponga en realidad de soporte far atomics. Otras hipótesis son la falta de contención entre la sincronización de las tareas paralelas o la limitación de enlazar los benchmarks con una única versión de librería glibc con soporte far atomics.

Tipo de Trabajo Académico: Trabajo Fin de Grado

Creative Commons License



El registro pertenece a las siguientes colecciones:
Trabajos académicos > Trabajos Académicos por Centro > Escuela de Ingeniería y Arquitectura
Trabajos académicos > Trabajos fin de grado



Volver a la búsqueda

Valore este documento:

Rate this document:
1
2
3
 
(Sin ninguna reseña)