Este Trabajo Fin de Grado pretende presentar Intel Array Building Blocks como una nueva alternativa a los modelos de programación paralela existentes en arquitecturas de memoria compartida. Para ello, se han evaluado las trece aplicaciones contenidas en
el benchmark PARSEC, analizando cuales de ellas podrían ofrecer un buen rendimiento. Con el fin de aplicar esta nueva tecnología se han seleccionados dos de los programas del benchmark, Blackscholes y Fluidanimate. El desarrollo se ha realizado en C++ a partir de los códigos secuenciales de las aplicaciones. Intel Array Building Blocks es una biblioteca basada en el lenguaje C++ que
proporciona paralelismo de datos mediante la combinación de varios núcleos e instrucciones vectoriales en arquitecturas multicore. ArBB está orientado a la
optimización de operaciones matriciales y vectoriales. El benchmark PARSEC ha sido concebido con fines tanto académicos como científicos y ofrece un conjunto de aplicaciones para arquitecturas de memoria compartida. Estas aplicaciones, de ámbito muy diverso, han sido paralelizadas previamente con tecnologías conocidas como Pthreads, OpenMP o Intel TBB. Blackscholes se basa en la resolución de una conocida ecuación del ámbito financiero mediante la realización de cálculos intensivos de operaciones matemáticas. La optimización de esta aplicación se ha realizado utilizando íntegramente Intel Array Building Blocks.
Fluidanimate se encarga de simular la dinámica del movimiento de un fluido. Esta
aplicación de animación ha sido paralelizada con Intel ArBB junto con Intel TBB debido
a las características específicas del algoritmo y las restricciones impuestas en Array Building Blocks. La evaluación del rendimiento de las dos aplicaciones paralelizadas se ha realizado sobre un computador con 8 hilos de ejecución y memoria uniforme (UMA) y un computador con 48 hilos de ejecución y memoria no uniforme (NUMA). Una vez paralelizada la aplicación, los resultados obtenidos de Blackscholes son mejores a los del resto de modelos de programación paralela (Pthreads, OpenMP e Intel TBB),logrando una aceleración máxima de 13,40 para la arquitectura con 8 hilos de ejecución y de 22,11 para la arquitectura con 48 hilos de ejecución. Por su parte, los resultados obtenidos en la versión implementada con ArBB y TBB de Fluidanimate superan, en la mayoría de pruebas realizadas, a las versiones optimizadas con TBB y Pthreads incluidas en el benchmark PARSEC. La aceleración máxima obtenida es de 3,21 para la arquitectura con 8 hilos de ejecución y de 18,45 para la arquitectura con 48 hilos de ejecución.Grado en Ingeniería Informátic