A genetic and source-to-source approach to iterative compilation

Serge Guelton, Institut Telecom, Telecom Bretagne
Advisor: Sebastien Varrette, University of Luxembourg

Developing and maintaining efficient numerical codes generally require manual tuning at the expense of code clarity: Hand coding this optimization is clearly a long process that leads to obfuscated and unmaintainable codes. A first step forward is the usage of source to source compilers. Such tools make it possible to select a particular transformation among the available ones (ex. loop unrolling), to parametrize it (ex. unroll factor) and to pick an application point (ex. loop label). It offers an interesting mean to distinguished between application and optimization layers. The fact remains that searching good optimizations among all the available ones is difficult: Code transformations, their parameters and application point define a field too large to be explored manually. To face this situation, production compilers use heuristics that give good result in most situation, yet the resulting binaries do not always fit the performance requirement, specially in the loop transformation field To go beyond these heuristics, we propose a genetic algorithm of the steady-state family that exploits many advantages of source to source compilers.

Long Abstract

Back to Program