Computer Laboratory

Research Group

I'm lucky enough to work with a range of fantastic people here in the Computer Lab on a variety of research themes. 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 (PostDoc)
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.


Tobias Kohn (PostDoc)
Tobias studies optimisations in Python, particularly in the context of scientific applications. He investigates the possibilities for, and limitations of, performance improvements of both Python as a language, as well as its current implementations. The focus of his research is on static analysis and program transformations.


Aida Miralaei (PhD Student)
Aida's PhD is on processing-in-memory for machine learning algorithms. In particular, she is looking at moving the inference phase of binarised convolutional neural networks into DRAM.


Nandor Licker (PhD Student)
Nandor is studying techniques for static optimisation of binaries.


Martijn Bakker (PhD Student)
Martijn is working on the POETS project, transforming programs into live graph-processing tasks and mapping those onto distributed systems.


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 (PostDoc)
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.


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.


Joe Isaacs (PhD Student)
Joe is working on techniques to pass semantic information from programmer to compiler and then static analysis that uses this to break data dependences.


Mahwish Arif (Research Assistant)
Mahwish is investigating static and runtime techniques to improve applications' performance on multi/many-core processors as well as enhancing their security properties.


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:

Bruno Manganelli (from Glasgow)
Bruno is developing automatic software prefetch techniques for linked data structures.
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.