Professor Murray Cole

Personal Chair of Patterned Parallel Computing


I'm fascinated by patterns, skeletons and other structures in parallel algorithms and software, and what we can do to expIoit them for performance or clarity.  I'm a member of the Compiler and Architecture Design Group, within the Institute for Computing Systems Architecture (ICSA).  I am Co-Director of the Centre for Doctoral Training in Pervasive Parallelism.

You can find my Publications and Projects in the Edinburgh Research Explorer Archive.

You may come across me as one of the School's PGR Personal Tutors, offering advice and support to research students who are having problems which affect their study. I have many years of experience working with postgrads, and my own memories of just how hard it can be as a PhD student (I nearly gave up, I changed my supervisor, I'm still researching nearly 40 years later!). Drop by my office or e-mail me (or one of  the other PGR tutors,  Elizabeth Polgreen or John Longley) if you'd like to chat.

I'm also the School's Academic Misconduct Officer (ie the plagiarism person), do get in touch if you have questions.

Postgraduate teaching

Parallel Programming Languages and Systems


Open to PhD supervision enquiries?


Research summary

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.

Many parallel programs can be expressed as instances of more generic patterns of parallelism, such as pipelines, stencils, wavefronts and divide-and-conquer. 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.

Project activity


Publications and Projects in the Edinburgh Research Explorer Archive

for Project/Grant information.