Computer Laboratory

Research Group

I'm lucky enough to work with a range of fantastic people here in the Computer Lab. My current research group members are:


Xiaochun (Dennis) Zhang (PostDoc)
Dennis is exploring the limits of automatic parallelisation within compilers. In particular, he's looking at how programmers parallelise code and whether there are techniques that they use that compilers currently don't, or can't, make use of themselves.


Ruoyu (Kevin) Zhou (PhD Student)
Kevin works with dynamic binary modification, investigating techniques to improve performance of applications using a combination of static analysis and dynamic transformation. His main focus is on parallelisation of binaries using a combination of speculation and synchronisation to ensure dependences are respected.


Hsi-Ming Ho (PostDoc)
Hsi-Ming is working on static analysis for application binaries. His research focuses on identifying and exposing parallelism in program executables that we can exploit at runtime, in addition to characterising data dependences so as to extract communication patterns between different parts of the code.


Sam Ainsworth (PhD Student)
Sam's research is developing schemes for prefetching data through indirect memory accesses in both software and hardware. He has released a compiler pass for LLVM to automate this and is developing generic hardware that will allow the user to program the prefetcher.

Blank person

Peng (Tom) Sun (PhD Student)
Tom is investigating schemes to increase the applicability of SIMD hardware for general purpose applications. He is developing his own hardware to address this challenge and working on compiler support to automate its use.


I generally take on one or two bright and enthusiastic people to join my group each year. If you are looking to do a PhD with me, I've prepared a page to give some information about the application. I typically advertise postdoc opportunities as they arise, both below and on my Twitter account.


I welcome visitors to my group for long or short stays, and at times these have led to successful long term collaborations. Here are some of the visitors to my group in Cambridge:

Alejandro Valero (from Valencia, now at Zaragoza)
Alex visited twice and worked with me on wearout mitigation schemes for caches.
Anouk van Laer (from UCL, now at ARM)
Anouk's research was investigating photonic networks-on-chip.
Parham Haririan (from Bremen)
Parham's PhD work looked at dynamic voltage and frequency scaling.

Previous Group Members

I'm always sorry when someone leaves the group, but pleased for them that they can spread their wings and explore pastures new! Here's a list of my not-forgotten research group members and where they headed:

Jyothish Soman
Was PhD Student, went to the DTG. Jyothish's investigated methods for continuing processor execution despite permanent errors.
Negar Miralaei
Was PhD Student, tragically died shortly before finishing her dissertation. Negar worked on characterising processor ageing and its effect on applications.
Konstantina Mitropoulou
Was PostDoc, went to Intel. Konstantina's research explored soft error detection using the compiler.
Niall Murphy
Was PhD Student, co-advised with Robert Mullins, went to ARM. Niall was investigating the use of speculation for DoAcross parallelism.
Vasileios Porpodas
Was PostDoc, went to Intel. Vasileios developed schemes to improve the coverage of SLP vectorisation.
Dan Jones
Was PostDoc, went to the University of Oxford. Dan was looking at accelerating graph computation.
Amitabha Roy
Was PostDoc, went to EPFL, now Intel. Amitabha developed a scheme for optimised cache coherence.
Georgios Tournavitis
Was PostDoc, went to Intel. George investigated cache coherence optimisations.