Universidad Complutense de Madrid
E-Prints Complutense

Application parallelization and debugging using pattern-based programming
Paralelización y depuración de aplicaciones usando programación basada en patrones

Impacto

Downloads

Downloads per month over past year



Vílchez Moya, Cristina (2020) Application parallelization and debugging using pattern-based programming. [Trabajo Fin de Grado]

[thumbnail of VILCHEZ_MOYA_Memoria_TFG_4398577_121740117.pdf]
Preview
PDF
Creative Commons Attribution Non-commercial.

1MB


Abstract

The search for improved performance of our computer systems is a never-ending journey. Up until the early 2000s, single-core processors dominated the technology market; however, the problem of heat and the limitations of instruction-level parallelism sentenced this branch of computers to obsolescence, in favour of multicore processors. Now, the challenge for programmers is to write programs that can take full advantage of the CPU resources, thanks to parallelism. Programmers are now presented with multiple parallel pattern frameworks and APIs (C++ threads, OpenMP, Intel TBB, etc), each of which has its own programming standard. The lack of high-level parallel pattern abstractions and the difficulty to port programs between these very specialised parallel pattern models increase the complexity in developing parallel applications. GrPPI is a generic high-level C++ parallel pattern interface that presents itself as a solution to this problem, for it provides users with a common API for a collection of these parallel frameworks.
In this work, we study the performance of GrPPI by using it to adapt four programs from the PARSEC benchmark suite and comparing its execution time to the original parallel implementation. We compare its performance for three execution back-ends (sequential, parallel native and OpenMP).
We will see that the results of the tests testify in favour of GrPPI, which has an execution time as good as the original, more specific parallel versions of the programs while needing fewer lines of code and no knowledge about the different programming standards.

Resumen (otros idiomas)

La búsqueda de un rendimiento mejorado de nuestros sistemas informáticos es un viaje interminable. Hasta principios de los 2000, los ordenadores uni-core dominaban el marcado tecnológico; sin embargo, el problema del calor y las limitaciones del paralelismo a nivel de instrucción (ILP) condenaron esta rama de las computadoras a la obsolescencia, a favor de los procesadores multicore. Ahora, el desafío para los programadores es escribir programas que puedan aprovechar al máximo los recursos de la CPU, gracias al paralelismo. Los programadores se enfrentan a múltiples marcos de patrones paralelos y APIs (C++ Multihreads, OpenMP, Intel TBB, etc.), cada uno de los cuales tiene su propio estándar de programación. La falta de abstracciones de patrones paralelos de alto nivel y la dificultad de traducir programas entre estos modelos de patrones paralelos tan especializados aumentan la complejidad en el desarrollo de aplicaciones paralelas. GrPPI es una interfaz de alto nivel genérica de patrones paralelos de C++ que se presenta como una solución a este problema, ya que proporciona a los usuarios una API común para una colección de estos marcos paralelos. En este trabajo, estudiamos el rendimiento de GrPPI usándolo para adaptar cuatro programas del conjunto de benchmark de referencia PARSEC y comparando su tiempo de ejecución con la implementación paralela original. Comparamos su rendimiento para tres back-end de ejecución (secuencial, paralelo nativo y OpenMP). Veremos que los resultados de las pruebas testifican a favor de GrPPI, que tiene un tiempo de ejecución tan bueno como las versiones paralelas originales y más específicas de los programas, a la vez que necesita menos líneas de código y ningún conocimiento sobre los diferentes estándares de programación.

Item Type:Trabajo Fin de Grado
Additional Information:

Trabajo de Fin 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 2019/2020

Directors:
Directors
Olcoz Herrero, Katzalin
Costero Valero, Luis María
Uncontrolled Keywords:High-level API, Parallel pattern, Parallel programming framework, Pattern-based programming, Grppi, High-level parallelization, PARSEC, Benchmark
Palabras clave (otros idiomas):API de alto nivel, Patrones de paralelismo, Programación paralela, Programación basada en patrones, Grppi, Paralelismo de alto nivel, PARSEC, Benchmark
Subjects:Sciences > Computer science
Título de Grado:Doble Grado en Ingeniería Informática y Matemáticas
ID Code:62014
Deposited On:07 Oct 2020 15:44
Last Modified:07 Oct 2020 15:44

Origin of downloads

Repository Staff Only: item control page