Supplementary Material: zip
Keywords: Optimización del rendimiento de software, optimizaciones de compilador, Algoritmos genéticos
TL;DR: Nuevo problema de optimización para la optimización del rendimiento de programas informáticos con secuencias de longitud mínima
Abstract: Los compiladores tradicionales permiten generar versiones más eficientes de un programa mediante el uso de flags de optimización, que aplican secuencias específicas de transformaciones de código. Sin embargo, estas secuencias suelen ser genéricas y a menudo no logran su objetivo de mejorar el rendimiento. El impacto de las transformaciones aplicadas, así como su orden, depende tanto del software como del hardware en el que se ejecuta. Este hecho hace necesario la generación de secuencias de transformaciones ad hoc para la optimización del rendimiento del software. En este trabajo definimos un nuevo problema compuesto por dos problemas de optimización combinatoria distintos, cuyo objetivo es encontrar secuencias que optimicen el rendimiento del programa, y que tengan la menor longitud posible. Reducir la longitud de la secuencia óptima permite realizar compilaciones más rápidas utilizando únicamente las transformaciones de código más beneficiosas para el binomio hardware-software, generando así nuevo conocimiento sobre este importante tema. Se propone una metodología de dos pasos para resolver este problema. En el primero, se identifican secuencias óptimas que minimizan el tiempo de ejecución del programa objetivo. En el segundo, se minimiza la longitud de la secuencia tratando de mejorar aún más el rendimiento del programa. Los resultados muestran cómo el método propuesto encuentra secuencias hasta un 51,27% más cortas y con una mejora del rendimiento en tiempo de ejecución en más de un 26% en comparación con el flag de compilación -O3.
Submission Number: 15
Loading