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. 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-14Jane Hillston Formal performance modelling to assess efficient use of resources and timeliness of response in dynamic concurrent systems.
final_0024_Layer-25Paul Jackson Mechanical theorem proving, reactive systems, linear temporal logic. final_0025_Layer-24Elham 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-34Michael 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-43Alan 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. boothStephen 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. final_0039_Layer-10Daniel 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. Mark van Rossum My research interests concern the most powerful parallel biological computer: the human brain. In particular I am interested in how sensory coding and memory is implemented using very many but fairly slow units.
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.