Personal home page:
Paul H J Kelly
- Professor of Software Technology,
- Group Leader,
Software Performance Optimisation
- co-Director, Centre for Computational Methods in Science and Engineering
- Department of Computing (map)
- Imperial College London
- 180 Queen's Gate
- London SW7 2BZ, UK
- Telephone: +44 (0) 20 7594 8332
- Fax: +44 (0) 20 7581 8024
- Email: p.kellyZZZ@doc.ic.ac.uk (please delete the
ZZZ before you use this address).
- If you fear your message has been treated as junk, please include the following letters in the Subject line:

I am head of the Software Performance Optimisation research group. Details of our weekly research talks/meetings are here.
Final-year (MEng and MSc) project students: please have a look at my project
proposals on CATE
(Imperial students only I'm afraid). Project proposals are the
starting point for discussion and negotiation. Project
proposals are also good topics for Independent Study Options for MAC
students - feel free to browse.
Interests:
- Computer systems issues underlying performance
- Applying a broad range of mathematical and theoretical ideas to
computer systems problems
- Performance evaluation, modelling and prediction
- Languages, compilers and operating systems for parallel computing
- Caching, combining and randomisation in processors, multiprocessors,
operating systems and wide-area networks
- Software tools for portable parallel programming
- Algebraic program transformation, especially applied to optimising
parallel programs
distributed memory multicomputers
- Irregular and data-intensive applications
- Language, linguistics, literature, literary theory
Not enough?
- The junction between the limits of the universe and the limits of
the mind.
News
- We are organising the 2012 Imperial GaME Event, a day of talks and demos developing links with the computer games and CGI industries; this year's event is on May 23rd - please register here.
- We hosted the 3rd UK GPU Computing Conference, December 14th at Goodenough College. Further details are available here.
- I gave a talk on October 11th at the London Mathematical Society's Computer Science Day,
which this year was devoted to High Performance Scientific Computing at the Exascale.. The slides from my talk, entitled "Software Abstractions for many-core software engineering" are here
- This year's
Imperial College London Games and Media Event (GaME '11)
took place on Wednesday May 25th 2011.
- I served as Program Committee co-chair for the ACM Computing Frontiers conference (Bertinoro, Italy, May 2010).
- My Inaugural Lecture (marking my promotion to Professor) took place on Wednesday May 13th, in the Clore theatre, title "Over and over again: the discipline of parallel software engineering". Slides are available online here.
Activities:
- Research: I lead Imperial's Software
Performance Optimisation research group.
Computer systems research is a broad area, and the group
has worked in a wide range of areas (operating systems, cache
coherency, debugging, specialisation, programming languages), the main focus
at present is performance optimisation of dynamically-composed
software components. This is a key enabling technology for flexible,
reusable software. As you can see from the publications and projects
listed below, I have an abiding interest in making high-performance
(and especially parallel) computing easier:
- Program committees:
- Current lecture courses:
- Other teaching:
- Administration:
Computing Support Group Forum
- Software
- Taskgraph Metaprogramming Library: a C++ package that supports
- Run-time code generation - programs that generate code on the
fly, then execute it (the first step towards "multi-stage"
programming)
- Meta-programming - having built a piece of code, you can apply
various transformations to it (such as loop interchange and
tiling).
- Aperture: A proof-of-concept Massively Multiuser Video Conferencing application. A virtual environment with real-time
sound and avatars with webcam images for faces. Developed by a 2008-9
undergraduate project group; source and Windows installer available.
- DeepWeaver-1: A declarative framework for analysis and
optimization components for Java - in fact an extension of the
abc AspectJ compiler with a Prolog/Datalog-like query language
and the power to analyse and restructure code within and across
methods.
DeepWeaver-1 is not yet ready for open release but if you are
keen please get in touch by email.
- DJPROF - DJProf
is an experimental profiling tool for Java programs implemented
entirely in Java and Aspect/J. DJProf was designed as a tool for
research in AspectJ and AOP. It was developed by my PhD student
David Pearce in the
summer of 2004 during an internship with the AspectJ team based
at IBM Hursley, UK.
- The Pointer Constraint System, by my PhD graduate David Pearce (a re-implementation of some of this work is being incorporated into gcc 4.1; see Dan Berlin's article in the 2005 GCC Summit proceedings).
- Bounds checking for C, by my MSc graduate Richard Jones, but long since maintained
by Herman ten Brugge, enhanced by Ruwase and Lam ("CRED") and now a
sourceforge project. See here, where we
explain how we avoid changing the binary pointer representation while
achieving better checking than, for example, Mudflap or Purify
(though Purify does things we don't do).
- MIRO -
Mudflap Improved with Referent Objects. A re-implementation
of the bounds checking work by MEng project student Alex
Lamaison. This version is based on the Mudflap stuff in GCC 4
and, because it works on GCC's Gimple IR it works for C++ as
well as C. We are looking for support (or volunteers) to take this work further.