Enhancing speculative code parallelization in VMAD with new patterns

Los procesadores con múltiples núcleos de hoy en día requieren nuevas estrategias para sacar ventaja del hardware subyacente. Dos aspectos que afectan drásticamente el desempeño son el grado de paralelismo y la localía de datos. Una forma de mejorar estos aspectos es a través del uso de compiladores...

Descripción completa

Detalles Bibliográficos
Autor principal: Martinez Caamaño, Juan Manuel
Formato: Tesis de Grado
Lenguaje:Inglés
Publicado: [201
Acceso en línea:https://hdl.handle.net/20.500.12110/seminario_nCOM000488_MartinezCaamano
Aporte de:
id todo:seminario_nCOM000488_MartinezCaamano
record_format dspace
spelling todo:seminario_nCOM000488_MartinezCaamano2023-10-03T16:48:51Z Enhancing speculative code parallelization in VMAD with new patterns Martinez Caamaño, Juan Manuel Los procesadores con múltiples núcleos de hoy en día requieren nuevas estrategias para sacar ventaja del hardware subyacente. Dos aspectos que afectan drásticamente el desempeño son el grado de paralelismo y la localía de datos. Una forma de mejorar estos aspectos es a través del uso de compiladores que puedan, automáticamente, paralelizar el código con muy poca intervención del programador. Dado que los ciclos juegan un rol central en el tiempo de ejecución total de las aplicaciones, los compiladores prestan particular atención a ellos. Esta tesis se enfoca en el problema de paralelizar automáticamente ciclos. Un modelo matemático llamado modelo del poliedro cubre la teoría detrás del análisis y transformación de ciclos. Sin embargo, este modelo, originalmente, esta limitado a ciclos que pueden ser precisamente analizados en tiempo de ejecución, no puede tratar con ciclos con accesos a memoria a través de punteros o indirecciones. VMAD es un framework que permite instrumentación en tiempo de ejecución y paralelización dinámica. Adaptando el modelo del poliedro a una técnica llamada paralelización especulativa, este framework puede tratar con ciclos que no pueden ser paralelizados utilizando las técnicas tradicionales. Esta tesis continua el trabajo hecho en VMAD de la siguiente forma: 1. Extendiendo la cantidad de transformaciones soportadas por VMAD dando soporte para tiling, una transformación que mejora la localía de datos. 2. Proponemos una paralelización de ciclos optimizada, para ciclos que pueden ser paralelizados sin aplicar ningún tipo de transformación. 3. Presentamos una optimización para reducir la penalización impuesta por utilizar paralelización especulativa. Evaluamos empíricamente la efectividad de las extensiones usando una serie de benchmarks bien conocidos. Today’s multi-core processors impose new strategies to take advantage of the underlying hardware. Two important aspects that drastically affects the performance are the degree of parallelism and data locality. One way to improve these aspects is through the use of parallelizing compilers, which can automatically parallelize code with very little programmer intervention. Since loops play an central role in the overall execution time of every application, compiler play particular attention to them. This thesis focuses on the problem of automatically parallelizing loops. A mathematical framework called the polytope model cover the theory behind loop analysis and transformation. Nevertheless, this theory is originally limited to loops which can be precisely analyzed at compile time, it cannot handle loops with memory accesses through pointers or indirections. VMAD is a framework which enables runtime instrumentation and dynamic parallelization. By adapting the polytope model to a technique called speculative parallelization, this framework is able to handle loops which cannot be parallelized using the traditional techniques. This thesis continues the work done in VMAD by: 1. Proposing an optimized loop parallelization, when the loop can be parallelized without applying any transformation. 2. Extending the transformation scope supported in VMAD by enabling tiling, a transformation which improves data locality. 3. Introducing an optimization to reduce the overhead imposed by speculative parallelization. We empirically evaluate the effectiveness of the extensions using a series of well known benchmarks. Fil: Martinez Caamaño, Juan Manuel. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. [2013] Tesis de Grado PDF Inglés info:eu-repo/semantics/openAccess https://creativecommons.org/licenses/by-nc-sa/2.5/ar https://hdl.handle.net/20.500.12110/seminario_nCOM000488_MartinezCaamano
institution Universidad de Buenos Aires
institution_str I-28
repository_str R-134
collection Biblioteca Digital - Facultad de Ciencias Exactas y Naturales (UBA)
language Inglés
orig_language_str_mv Inglés
description Los procesadores con múltiples núcleos de hoy en día requieren nuevas estrategias para sacar ventaja del hardware subyacente. Dos aspectos que afectan drásticamente el desempeño son el grado de paralelismo y la localía de datos. Una forma de mejorar estos aspectos es a través del uso de compiladores que puedan, automáticamente, paralelizar el código con muy poca intervención del programador. Dado que los ciclos juegan un rol central en el tiempo de ejecución total de las aplicaciones, los compiladores prestan particular atención a ellos. Esta tesis se enfoca en el problema de paralelizar automáticamente ciclos. Un modelo matemático llamado modelo del poliedro cubre la teoría detrás del análisis y transformación de ciclos. Sin embargo, este modelo, originalmente, esta limitado a ciclos que pueden ser precisamente analizados en tiempo de ejecución, no puede tratar con ciclos con accesos a memoria a través de punteros o indirecciones. VMAD es un framework que permite instrumentación en tiempo de ejecución y paralelización dinámica. Adaptando el modelo del poliedro a una técnica llamada paralelización especulativa, este framework puede tratar con ciclos que no pueden ser paralelizados utilizando las técnicas tradicionales. Esta tesis continua el trabajo hecho en VMAD de la siguiente forma: 1. Extendiendo la cantidad de transformaciones soportadas por VMAD dando soporte para tiling, una transformación que mejora la localía de datos. 2. Proponemos una paralelización de ciclos optimizada, para ciclos que pueden ser paralelizados sin aplicar ningún tipo de transformación. 3. Presentamos una optimización para reducir la penalización impuesta por utilizar paralelización especulativa. Evaluamos empíricamente la efectividad de las extensiones usando una serie de benchmarks bien conocidos.
format Tesis de Grado
author Martinez Caamaño, Juan Manuel
spellingShingle Martinez Caamaño, Juan Manuel
Enhancing speculative code parallelization in VMAD with new patterns
author_facet Martinez Caamaño, Juan Manuel
author_sort Martinez Caamaño, Juan Manuel
title Enhancing speculative code parallelization in VMAD with new patterns
title_short Enhancing speculative code parallelization in VMAD with new patterns
title_full Enhancing speculative code parallelization in VMAD with new patterns
title_fullStr Enhancing speculative code parallelization in VMAD with new patterns
title_full_unstemmed Enhancing speculative code parallelization in VMAD with new patterns
title_sort enhancing speculative code parallelization in vmad with new patterns
publishDate [201
url https://hdl.handle.net/20.500.12110/seminario_nCOM000488_MartinezCaamano
work_keys_str_mv AT martinezcaamanojuanmanuel enhancingspeculativecodeparallelizationinvmadwithnewpatterns
_version_ 1807321886815682560