Optimización en dos pasos del rendimiento del software usando transformaciones de compilación

Identificadores
Statistics
Metadata
Show full item recordDate
2025-05Department
Ingeniería InformáticaSource
XVI Congreso Español de Metaheurísticas, Algoritmos Evolutivos y Bioinspirados (MAEB 2025)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.





