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

My research interests are 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 the Institute for Computing Systems Architecture (ICSA), I work with the Structured Parallelism Group and the Compiler and Architecture Design Group.

I am Co-Director of the Centre for Doctoral Training in Pervasive Parallelism, which offers many PhD funding opportunities. I am Edinburgh PI on the EPSRC funded "Discovery" project, investigating "Pattern Discovery and Program Shaping for Heterogeneous Manycore Systems", in collaboration with the University of St Andrews.

I was previously Director of ICSA, 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. 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)