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.
- Languages, compilers, and operating systems for parallel computing
- Domain-specific tools and active libraries
- Computer systems issues underlying performance
- Software tools for portable parallel programming
- Irregular and data-intensive applications
- Applying a broad range of mathematical and theoretical ideas to
computer systems problems
- Performance evaluation, modelling and prediction
- Caching, combining and randomisation in processors, multiprocessors,
operating systems and wide-area networks
- Language, linguistics, literature, literary theory
- The junction between the limits of the universe and the limits of
- June 11th 2013: I am truly astonished and amazed to have been nominated for Imperial's Engineering Faculty Award for Teaching Excellence in Engineering Education. I was absolutely gobsmacked to actually win it! Every item mentioned in the citation was done in collaboration with colleagues. It takes a whole organisation to make good things like this happen. So thank you! Thanks also to the amazing students, who've made this such a pleasure. Thank you also to my family, who've made it worthwhile.
- June 5th 2013: Today's New Scientist magazine features an article about the work of Renato Salas-Moreno, whom I co-supervise with Andy Davison.
- May 31st 2013: Our EPSRC Platform Grant "Platform: Underpinning Technologies for Finite Element Stimulation" has been funded! This is an amazing opportinity to push forward research agenda in compiler technology for finite-element fluid and structure modelling in an amazing collaboration of finite-element specialists across the College, led by Spencer Sherwin.
- May 28th 2013: I am thrilled to report that Mike Mellor has been awarded his PhD. His thesis title is "Querying Programs using Declarative Programming".
His examiners were Prof Kevin Hammond (St Andrews) and Prof Alex Wolf (Imperial). Hi supervisors were Paul Kelly and Tony Field.
- May 20th 2013: This year's GAME event was a huge success - thanks to everyone involved in making it happen!
- May 16th 2013: David Ham has been awarded a 5-year NERC independent research fellowship to forward my work on automated code generation in geoscientific simulation.
- March 12 2013: I am happy to announce that David Birch successfully defended his PhD, His thesis title is "Computationally Unifying Urban Masterplanning". His supervisors were Paul Kelly, Tony Field and Alvise Simondetti at Arup, who partially sponsored the work. His examiners were Prof Steve Easterbrook and Prof Duncan Gillies.
- Our PAMELA Programme Grant has been funded. This is a five-year project, in collaboration with compiler and architecture researchers at Manchester and Edinburgh. It's an integrated attack on the multicore/manycore problem, led by Steve Furber and driven by computer vision and 3D scene understanding applications in collaboration with Andy Davison. And we are hiring. Please get in touch if this is of interest.
- I gave the Keynote talk at the Functional High-Performance Computing workshop in Copenhagen in September 2012. The video is here.
- I am a member of the Programme Committee for the Architecture Track of the International Parallel and Distributed Processing Symposium (IPDPS), Boston, May 2013. This is particularly pleasing as IPDPS has four tracks - Algorithms, Applications, Software and Architecture. I've been on the PC for the first three, this makes four.
- I am a member of the Programme Committee for the PPoPP conference (Principles and Practice of Parallel Programming), Shenzhen, China, February 2013.
- I gave an invited talk at the FEniCS Project's annual workshop in June 2012 (FEniCS'12).
- We organised 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 2011 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
- 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.
- 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:
- PC member, PPoPP'13
- PC member, ACM Computing Frontiers 2010
- Vice-chair, Software, IPDPS 2008
- Programme committee member, GPCE 2007
- Programme committee member, IPDPS 2007 (Algorithms track)
- Programme committee member, NPC 2007
- Programme committee member, International
Conference on Supercomputing (ICS 2006)
- Programme Committee member, EuroPar 2006, Topic 4: Compilers for
- Current lecture courses:
- Other teaching:
Computing Support Group Forum
- 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"
- Meta-programming - having built a piece of code, you can apply
various transformations to it (such as loop interchange and
- 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
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.