Our Supervisors

 Our Supervisors

CDT PPar students each have three supervisors, who take them through both the MSc and PhD phases:

  • a main supervisor, allocated during the admission process;
  • a domain expert co-supervisor, who will play a similar role to the main supervisor;
  • a wild card co-supervisor, who is deliberately chosen to come from a different area of the Pervasive Parallelism landscape, in order to be able to ask interesting “outsider” questions, make links you may not have thought of, and generally challenge you to think beyond your immediate research area.

Students should make sure to keep in regular touch with their supervisors, and follow the advice for MSc and PhD students in the Informatics Graduate School pages.

Our supervisors have interests spanning the pervasive parallelism spectrum. They are grouped here loosely by area, but many have interests spanning many topics, so please read all sections! We strongly recommend that you make contact with potential supervisors while preparing your application.

Research Groupings:

+ Architecture, Networks, Compilation & Systems

+ Programming Languages and Software

+ Modelling, Proof and Concurrency Theory

+ Applications and HPC



Architecture, Networks, Compilation & Systems

bhatotiaPramod Bhatotia

Distributed systems, operating systems, “Big Data” systems/cloud computing, and storage systems.

final_0038_Layer-11Christoph Dubach

Adaptive software and hardware for energy-efficient computing.

final_0034_Layer-15Björn Franke

Advanced automatic parallelisation, code generation for embedded processors, dynamic binary translation, statistical performance estimation.

final_0032_Layer-17Boris Grot

Processor architectures, memory systems, and interconnection networks for big-data computing.

final_0021_Layer-28Hugh Leather

Machine learning based optimizing compilation, energy optimization space exploration.

final_0020_Layer-29Myungjin Lee

Computer networks: software-defined networking and its applications, data centre networking, measurement architectures, cloud computing and networked application characterisation.

final_0018_Layer-31Mahesh Marina

Wireless and mobile networking, performance evaluation, distributed systems and algorithms.

vijayVijay Nagarajan

Parallel architectures: enhancing programmability and performance. Memory consistency, cache coherence and synchronization for scalable parallel architectures.

mikeMike O’Boyle

Machine learning based optimisation. Heterogeneous and GPGPU multi-core platforms.

final_0014_Layer-35Paul Patras

Wireless networks, network protocols and architectures, performance analysis, optimisation, test beds and prototyping.

final_0008_Layer-41Rik Sarkar

Distributed computing, Algorithms, Network protocols, Mobile and sensor networks.

final_0004_Layer-45Nigel Topham

Design and analysis of high-performance computing systems, architecture simulation.



 Programming Languages and Software

aspinalliDavid Aspinall

Security and safety of concurrent code. Formal verification of language memory models. Program analysis of software frameworks providing concurrency.

final_0041_Layer-8James Cheney

Databases and programming languages; functional language design for data-parallel or data-intensive programming; provenance and reproducibility for validation of scientific computation.

final_0004_Layer-46Murray Cole

Parallel programming models, skeletons and patterns.

Wenfei Fan

Parallel query engines for big relations, parallelization of graph computations, and the theory of parallel scalability.

final_0012_Layer-37Ajitha Rajan

Complexity metrics, coverage metrics, slicing and analysis of concurrent programs. Software Testing using GPUs.

final_0009_Layer-40Don Sannella

Security via proof-carrying code, mobility and security, algebraic specification, foundations of formal software development.

final_0031_Layer-18Ian Stark

Mathematical models for programming languages and parallel interaction within concurrent systems: verifying embedded microcontrollers, securing mobile code, analysing biomolecular reactions.

final_0005_Layer-44Perdita Stevens

Mathematics of software engineering, especially model-driven development. For example, Stevens works on properties of bidirectional transformations, which maintain consistency between changing information sources.

final_0026_Layer-23Stratis Viglas

Database systems, code generation, parallel and distributed processing, storage.

final_0027_Layer-22Philip Wadler

Programming languages, functional programming, web programming, scripting, session types, A Basis for Concurrency and Distribution (ABCD).



 Modelling, Proof and Concurrency Theory

Myrto_scaled2Myrto Arapinis

Verification of cryptographic protocols: verification of security properties, detection of attacks, formal models, protocol composition. Privacy in mobile telephony systems, electronic voting, statistical databases. Automatic deduction: resolution, rewritting, process algebra.

Vaishak Belle

Unifying symbolic systems and machine learning, distributed reasoning and distributed machine learning, planning and synthesis in multi-agent systems and their applications


jcbJulian Bradfield 

Modal and temporal logics, model-checking, concurrency.

bundyAlan Bundy

Inductive proof, reasoning about software and hardware, the interaction of representation and reasoning.

final_0040_Layer-9Vincent Danos

Scaleable domain specific modeling and programming languages, mostly, but not only, for systems and synthetic biology.

Ilias Diakonikolas

My main research interests are in algorithms, learning, statistics, and applied probability. The current focus of my work is on big data algorithmics for machine learning. I also have strong interests in optimization and game theory.

final_0037_Layer-12Kousha Etessami

Automated verification, model checking, analysis of probabilistic systems, infinite-state systems, algorithmic game theory, computational complexity.

final_0036_Layer-13Jacques Fleuriot

Theorem proving, interactive and automatic proofs.

 Vashti Galpin

Quantitative process algebras, modelling of dynamic systems and meta-theory of process algebras.

 Chris Heunen

Formal models for concurrent and quantum programming. Applications of quantum logic to process calculus.

final_0035_Layer-14 Jane Hillston

Formal performance modelling to assess efficient use of resources and timeliness of response in dynamic concurrent systems.

final_0024_Layer-25 Paul Jackson

Mechanical theorem proving, reactive systems, linear temporal logic.

final_0025_Layer-24 Elham Kashefi

Parallel quantum algorithms and quantum parallelisation techniques, Quantum depth complexity and Circuit optimisation.

final_0029_Layer-20Leonid Libkin

Modelling and querying relational, XML, and graph data, data interoperability, incomplete information.

final_0010_Layer-39Richard Mayr

Automated verification, temporal logic, formal verification of parallel real-time systems.

final_0015_Layer-34 Michael Rovatsos

Distributed and decentralised intelligent systems, automated decomposition and synthesis of complex workflows, especially in knowledge sharing and social computation applications. Using AI and multiagent systems techniques for managing complex systems infrastructures.

final_0007_Layer-42Richard Shillcock

Theoretical-cognitive aspects. Universals, dealing with architectures to allow an approach to the issue of completeness in a domain.

final_0006_Layer-43 Alan Smaill

Constructive logics and non-realist semantics; theorem proving in relation to programming.

Colin StirlingColin Stirling

Models of concurrent computation, modal and temporal logics, verification.

final_0030_Layer-19Charles Sutton

Probabilistic modeling of large-scale computer systems, approximate inference, statistical processing of natural and programming languages.



 Applications and HPC

Stefano V. Albrecht

Systems of independent autonomous agents that process observations and make decisions to achieve joint goals. Problems of inference, planning, and learning in such systems.

Vaishak Belle

Unifying symbolic systems and machine learning, distributed reasoning and distributed machine learning, planning and synthesis in multi-agent systems and their applications

booth Stephen Booth

Performance tuning, random number generators.

Nick BrownNick Brown

Novel programming language design for writing efficient and manageable parallel codes, runtime systems to support existing programming technologies & codes, and parallel algorithm development including the efficient use of accelerators.

Mark Bull

Parallel algorithms and their efficient implementation; parallel programming models; benchmarking.

Kenneth Heafield

Scalable high-quality natural language processing, the web as a corpus, approximate dynamic programming.


Daniel Holmes

Enabling high-performance programming using high-productivity methods; implementation of highly scalable message passing.

final_0022_Layer-27Taku Komura

Computer graphics and animation, massive character and crowd animation, large-scale geometry / volume processing.

Adam Lopez

GPGPU algorithms for natural language processing.


final_0017_Layer-32Mark Parsons

Highly distributed data intensive computing, novel hardware design.

Gavin Pringle

Applications of High Performance Computing in CFD and Astrophysics.


final_0011_Layer-38Subramanian Ramamoorthy

Learning and decision making in robots and autonomous systems, Decentralized autonomous systems and human-machine interactive systems, Context-awareness in wearable, mobile and sensor network systems.


Rico Sennrich

Large scale natural language processing.

final_0019_Layer-30Lorna Smith

Novel programming models for future HPC architectures. Preparing scientific applications for future exascale platforms.

Sethu Vijayakumar

Realtime Sensing, Control and Planning for Autonomous Robotic Systems; Online Learning and Adaptation in High Dimension; Embedded Sensorimotor Control.

final_0016_Layer-33Michele Weiland

Energy efficient HPC; novel parallel programming models.