Automatic Software Performance Optimization using Genetic Algorithms

Identificadores
Statistics
Metadata
Show full item recordDate
2024Department
Ingeniería InformáticaSource
International Conference in Optimization and Learning (OLA2024)Abstract
Software programs (SW) are who ultimately drives the underlying hardware (HW). Therefore SW
should make an efficient use of all available resources in order to achieve high performance levels
when executing.
Compilers typically perform a number of code transformations, also known as optimizations,
before generating the executable file. The purpose of applying such optimizations is to modify the
use of the underlying HW by the considered SW. These are generic sequences of optimizations
that are known to generally perform well. However, it is clear that distinct SW programs and HW
architectures offer different characteristics, and the same sequence of code transformations cannot
fully exploit them for optimal performance.
Therefore, there is a need of finding ad hoc optimization sequences to accurately optimize the
performance of every SW/HW pair. However, this is a titanic task, taking into account the immense
variety of existing HW architectures, for which every SW must be optimized. In addition, the
process of optimizing SW performance for a given HW architecture is a difficult, error prone, and
expensive task, requiring the hands of expert programmers with high knowledge on the considered
architecture. Automatizing this process would allow the generation of a new generation of smart
compilers, able to perform ad hoc transformations for the considered SW and HW for optimal
performance.
We propose in this work a novel approach to automatize the process of optimizing the performance
of a particular SW program on a specific HW. For that, we define a novel combinatorial
optimization problem, that we call SCOP (for Software Code Optimization Problem), consisting
in finding a sequence of code transformations that minimizes the runtime of the resulting SW on
the considered HW architecture. This extended abstract presents our work [2], recently published
in IEEE Transactions on Sustainable Computing.





