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.

Background

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.

Project

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.

Candidate Profile

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 architecture.

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.