Multi-site Performance Optimisation for Parallel Programs
A PhD studentship is available to study Multi-site Performance Optimisation for Parallel Programs.
The studentship will be held under the supervision of
Dr. Murray Cole, within the
Institute for Computing Systems Architecture, at the
School of Informatics, University of
Edinburgh, to begin in September 2009. The studentship is funded under the umbrella of the
Centre for Numerical Algorithms and Intelligent Software.
Traditional program performance optimisations, whether implemented within the compiler or
ad-hoc by the programmer, generally involve replacment, movement or amendment of small
tightly contained code fragments at source and/or intermediate levels. The "single-site"
nature of such transformations, coupled with sequential semantics, facilitate the task
various tasks involved: identifying a potential site in the source code, verifying that
the context makes the transformation valid and applying the transformation.
The addition of explicit parallelism at the source level complicates all of these issues.
Even for transformations which are sequential in nature, it may, for example, be
necessary to check more widely that the program semantics are maintained. This is a
familiar problem in existing systems built from sequential compilers: for example, some
memory load lifts which are safe for single threaded code may not be so when the same
code is run concurrently with further threads. More challengingly, some potential
optimising transformations on parallel code require action at multiple source sites, for
example, at the two ends of a "simple" point-to-point communication. The potential benefits are substantial,
but the process is complex.
The project student will investigate the issues discussed above, generating a collection
of candidate multi-site transformations, including contextual analysis requirements, and
experimental evaluation of the benefits derived from within a range of applications on
diverse architectures. The project could proceed as follows: survey of traditional
sequential optimisations; consideration and evaluation of their application within
sequential fragments of explicitly parallel programs; survey and categorisation of
existing multi-site parallel transformations; derivation and evaluation of new multi-site transformations and
their situation within parallel benchmark suites.
Code transformation, both at source and intermediate levels, is at the core of the NAIS
adaptive software optimisation methodology, defining the search space to be explored by
various machine-learning led strategies. This project will define and evaluate a
collection of new transformations for inclusion in the overall framework.
Suitable candidates will have a first degree in Computer Science and a strong interest in
parallel programming and the interface between programs, compilers and computer
Applying for the Studentship
Candidates are encouraged to contact Murray Cole to
informally discuss the project further. Formal application will be through the School's
normal PhD application process.