Event image

 

 

Professor Paul J Kelly, Professor of Software Technology presents this inaugural lecture “Over and over again: the discipline of parallel software engineering”.

 

In the Chair: Professor Jeff Magee, Head of Department, Department of Computing

Vote of Thanks: Professor Christian Lengauer, University of Passau, Germany

 

A pre lecture tea will be served from 16.45 in the Senior Common Room, Level 2, Sherfield Building.

 

Attendance at this lecture is free with registration in advance: l.brown@imperial.ac.uk.

 

 

Abstract: Programming seems to have a fundamentally serial nature – planning the steps a computer will take.  The reality of computing machines is not like that at all: computation and data are distributed in space, and multiple activities can take place in complex, overlapped and interacting ways.  Engineering software to do this is really hard, because the best design choices involve partitioning data and scheduling work at multiple scales.  Furthermore, partitioning and scheduling often cut across the logical structures that we rely on for abstraction and reuse of software components.  This talk will trace this problem back to the earliest days of computing – then show some of our most recent work that offers the prospect for overcoming these challenges.  The key idea is to build software tools that support, and promote, programming at a conceptual level that exposes performance optimisations without committing to details prematurely.  That is: build software libraries that capture the computational structure.  Then, by using knowledge and experience of particular application domains, generate efficient parallel code from it.

 

Biography: Professor Kelly leads Imperial’s Software Performance Optimisation research group. He graduated in Computer Science from University College London in 1983, and moved to Westfield College, University of London, for his PhD.  He came to Imperial in 1986, working on fault-tolerant wafer-scale multicore architectures, and parallel functional programming.  He was appointed as Lecturer in 1989.  His research contributions span single-address-space operating systems, scalable large shared-memory architectures, compilers (bounds checking and pointer analysis), graph algorithms, performance profiling, and custom floating-point arithmetic.  The main current focus is on engaging with applications specialists to develop software tools for multicore architectures, overcoming the limitations of conventional compilers through “active libraries” that exploit properties of a particular application domain to achieve high performance while maintaining a clean, abstract program structure.