158,093 research outputs found
A Survey on Compiler Autotuning using Machine Learning
Since the mid-1990s, researchers have been trying to use machine-learning
based approaches to solve a number of different compiler optimization problems.
These techniques primarily enhance the quality of the obtained results and,
more importantly, make it feasible to tackle two main compiler optimization
problems: optimization selection (choosing which optimizations to apply) and
phase-ordering (choosing the order of applying optimizations). The compiler
optimization space continues to grow due to the advancement of applications,
increasing number of compiler optimizations, and new target architectures.
Generic optimization passes in compilers cannot fully leverage newly introduced
optimizations and, therefore, cannot keep up with the pace of increasing
options. This survey summarizes and classifies the recent advances in using
machine learning for the compiler optimization field, particularly on the two
major problems of (1) selecting the best optimizations and (2) the
phase-ordering of optimizations. The survey highlights the approaches taken so
far, the obtained results, the fine-grain classification among different
approaches and finally, the influential papers of the field.Comment: version 5.0 (updated on September 2018)- Preprint Version For our
Accepted Journal @ ACM CSUR 2018 (42 pages) - This survey will be updated
quarterly here (Send me your new published papers to be added in the
subsequent version) History: Received November 2016; Revised August 2017;
Revised February 2018; Accepted March 2018
Towards the Design of Heuristics by Means of Self-Assembly
The current investigations on hyper-heuristics design have sprung up in two
different flavours: heuristics that choose heuristics and heuristics that
generate heuristics. In the latter, the goal is to develop a problem-domain
independent strategy to automatically generate a good performing heuristic for
the problem at hand. This can be done, for example, by automatically selecting
and combining different low-level heuristics into a problem specific and
effective strategy. Hyper-heuristics raise the level of generality on automated
problem solving by attempting to select and/or generate tailored heuristics for
the problem at hand. Some approaches like genetic programming have been
proposed for this. In this paper, we explore an elegant nature-inspired
alternative based on self-assembly construction processes, in which structures
emerge out of local interactions between autonomous components. This idea
arises from previous works in which computational models of self-assembly were
subject to evolutionary design in order to perform the automatic construction
of user-defined structures. Then, the aim of this paper is to present a novel
methodology for the automated design of heuristics by means of self-assembly
- …