Representando secuencias de enteros usando bucles afines por partes
Autores: Rodríguez, Gabriel; Pouchet, Louis-Noël; Touriño, Juan
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
Representando secuencias de enteros usando bucles afines por partes
Categoría
Matemáticas
Subcategoría
Matemáticas generales
Palabras clave
Formal
De alto nivel
Programas
Análisis
Modelos
Memoria
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 32
Citaciones: Sin citaciones
Una representación formal y de alto nivel de programas generalmente es necesaria para análisis estáticos y dinámicos realizados por compiladores. Sin embargo, el código fuente de las aplicaciones objetivo no siempre está disponible en una forma analizable, por ejemplo, para proteger la propiedad intelectual. Para razonar sobre dichas aplicaciones, se vuelve necesario construir modelos a partir de observaciones de su ejecución. Este documento detalla un enfoque algebraico que, tomando como entrada la traza de las direcciones de memoria accedidas por una única referencia de memoria, sintetiza un bucle afín con una única referencia perfectamente anidada que genera la traza original. Este enfoque se extiende para soportar la síntesis de uniones de bucles afines, útiles para modelar mínimamente trazas generadas por transformaciones automáticas de programas poliédricos, como el enrejado. El sistema resultante es capaz de procesar cientos de gigabytes de datos de traza en minutos, reconstruyendo mínimamente el 100% de las partes de control estático en aplicaciones PolyBench/C y el 99.99% en las versiones enrejadas de estos benchmarks. Como ejemplo de aplicación del método de modelado de trazas, se explora la compresión de trazas. Las representaciones afines construidas para las trazas de memoria de códigos PolyBench/C logran factores de compresión del orden de y con respecto a las versiones originales y enrejadas de las trazas, respectivamente.
Descripción
Una representación formal y de alto nivel de programas generalmente es necesaria para análisis estáticos y dinámicos realizados por compiladores. Sin embargo, el código fuente de las aplicaciones objetivo no siempre está disponible en una forma analizable, por ejemplo, para proteger la propiedad intelectual. Para razonar sobre dichas aplicaciones, se vuelve necesario construir modelos a partir de observaciones de su ejecución. Este documento detalla un enfoque algebraico que, tomando como entrada la traza de las direcciones de memoria accedidas por una única referencia de memoria, sintetiza un bucle afín con una única referencia perfectamente anidada que genera la traza original. Este enfoque se extiende para soportar la síntesis de uniones de bucles afines, útiles para modelar mínimamente trazas generadas por transformaciones automáticas de programas poliédricos, como el enrejado. El sistema resultante es capaz de procesar cientos de gigabytes de datos de traza en minutos, reconstruyendo mínimamente el 100% de las partes de control estático en aplicaciones PolyBench/C y el 99.99% en las versiones enrejadas de estos benchmarks. Como ejemplo de aplicación del método de modelado de trazas, se explora la compresión de trazas. Las representaciones afines construidas para las trazas de memoria de códigos PolyBench/C logran factores de compresión del orden de y con respecto a las versiones originales y enrejadas de las trazas, respectivamente.