000112370 001__ 112370
000112370 005__ 20220510092001.0
000112370 037__ $$aTAZ-TFG-2021-4585
000112370 041__ $$aspa
000112370 1001_ $$aVidarte Llera, José Manuel
000112370 24200 $$aAnalysis and Study of the Far Atomics Synchronization Mechanisms in ARM Multiprocessors.
000112370 24500 $$aAnálisis y Estudio de los Mecanismos de Sincronización Far Atomics en Multiprocesadores ARM.
000112370 260__ $$aZaragoza$$bUniversidad de Zaragoza$$c2021
000112370 506__ $$aby-nc-sa$$bCreative Commons$$c3.0$$uhttp://creativecommons.org/licenses/by-nc-sa/3.0/
000112370 520__ $$aLa 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.<br />
000112370 521__ $$aGraduado en Ingeniería Informática
000112370 540__ $$aDerechos regulados por licencia Creative Commons
000112370 700__ $$aSuárez Gracia, Darío$$edir.
000112370 700__ $$aValero Bresó, Alejandro$$edir.
000112370 7102_ $$aUniversidad de Zaragoza$$bInformática e Ingeniería de Sistemas$$cArquitectura y Tecnología de Computadores
000112370 8560_ $$f739729@unizar.es
000112370 8564_ $$s1292527$$uhttps://zaguan.unizar.es/record/112370/files/TAZ-TFG-2021-4585.pdf$$yMemoria (spa)
000112370 909CO $$ooai:zaguan.unizar.es:112370$$pdriver$$ptrabajos-fin-grado
000112370 950__ $$a
000112370 951__ $$adeposita:2022-05-10
000112370 980__ $$aTAZ$$bTFG$$cEINA
000112370 999__ $$a20211123151236.CREATION_DATE