Murray Cole's home page

Murray Cole


Email: mic ---->
Phone: +44 (0)131 650 5154
Room 1.18
Informatics Forum,
10 Crichton Street
Edinburgh, EH8 9AB

I am Director of the Institute for Computing Systems Architecture (ICSA), with an interest in parallel programming models, emphasising approaches which exploit skeletons to package and optimize well known patterns of computation and interaction as parallel programming abstractions. Within ICSA I work with the Structured Parallelism Group and the Compiler and Architecture Design Group.

I am Deputy Director of the Centre for Doctoral Training in Pervasive Parallelism, which offers many PhD funding opportunities.

I was previously a member of the the Steering Committee of NAIS, the Centre for Numerical Algorithms and Intelligent Software, and hosted the NAIS Workshop on Skeletons, Heterogeneous Systems and Domain Specific Optimization. Other previous projects include eSkel and Enhance.


PhD Opportunities
The EPSRC Centre for Doctoral Training in Pervasive Parallelism offers many PhD funding opportunities.

I welcome applications to work with me on the skeletal approach to parallel programming. Many parallel programs can be expressed as instances of more generic patterns of parallelism, such as pipelines, stencils, wavefronts and divide-and-conquer. In our work we call these patterns skeletons. Providing a skeleton API simplifies programming: the programmer only has to write code which customizes selected skeletons to the application. This also makes the resulting programs more performance portable: the compiler and/or run-time can exploit structural information provided by the skeleton to choose the best implementation strategy for a range of underlying architectures, from GPU, through manycore, and on to large heterogeneous clusters.

Opportunities for research in this area include the full integration of skeletons into the language and compilation process, dynamic optimization of skeletons for diverse heterogeneous systems, the extension of skeleton approaches to applications which are not quite skeleton instances, the automatic discovery of new (and old) skeletons in existing applications, and the design and implementation of skeleton languages in domain-specific contexts.

Pervasive Parallelism

Parallel Programming Languages and Systems

MSc by Research Thesis (Pervasive Parallelism)