PhD Studentships in Compilers that Learn to Optimise at
University of Edinburgh
There are currently two vacancies for EPSRC funded PhD Studentships
Compiler Group at the Institute for
Computer Systems Architecture and Institute for Adaptive and
Neural Computation within the School of Informatics
University of Edinburgh, Scotland, UK.
The studentships are for 3 years and
in the area of applying machine learning to program optimisation.
This project is a collaboration between the Compiler group headed
by Dr Michael O'Boyle and Machine Learning group led by Dr Chris Williams.
It is anticipated that there will be an opportunity for
research in either or both of these areas.
Candidates should hold a good first degree, be self-motivated and
possess strong mathematical and computational skills. A relevant MSc or
knowledge of compiler optimisation and/or machine learning would be
useful but not obligatory.
The compiler group investigates a diverse range of
problems from adaptive java compilation to auto-parallelising for
embedded DSP systems. Research in the machine learning area ranges
from theoretical questions to applications such as
astronomical data-mining. There are close links with other UK, European
and US groups and there is ample opportunity for creative study and
The start date for the studentship is flexible, but can be as early as
February 1st, 2003. To apply, complete the application form available
specifying that you wish to be considered for an EPSRC studentship in
Compilers that Learn to Optimise. Informal enquiries may be made to Dr
Michael O'Boyle, firstname.lastname@example.org or Dr Chris Williams
email@example.com using the subject line "EPSRC studentships
in Compilers that Learn to Optimise".
The overall objective of this project is to develop a compiler
framework that can automatically learn how to optimise
programs. Rather than hard-coding a compiler strategy for each
platform, we aim to develop a novel portable compiler approach that
can automatically tune itself to any fixed hardware and can improve
its performance over time. This is achieved by employing machine
learning approaches to optimisation, where the machine learning
algorithm first learns the optimisation space and then automatically
derives a compilation strategy that attempts to generate the ``best''
optimised version of any user program.
There are two main areas where machine learning techniques can be used
to help optimise compilers: Global Optimisation (GO) and Predictive
Modelling (PM). GO is of primary use in Iterative Embedded
Compilation. It provides a systematic method of searching iteratively
for the best program version off-line. PM is of primary use in
Portable Compilation. It develops a model of the transformation and
processor space during a separate training phase. It then uses this
model at compile time to optimise any user program.
Such an approach, if
successful, will have a wide range of applications. It will allow
portability and performance of compilers across platforms, eliminating
the human compiler-development bottleneck. It can also be applied to
embedded applications, to rapidly shorten the design cycle of embedded
systems and enable automatic design exploration of architectural
The strategic aims of the project are to:
The project has the following technical objectives: