Imperial’s Software Performance Optimisation research group, led by Prof Paul H J Kelly, is primarily focused on research in compiler technology – but with a specific emphasis on domain-specific performance optimisations.

We deliver optimisation technologies for domain-specific application contexts, in the form of software tools (usually open-source). These tools are used in a huge diversity of application areas.

To do so, we engage deeply with application specialists – spanning computational science, numerical methods, computer vision, robotics, deep learning and data analytics.

Delicious Twitter Digg this StumbleUpon Facebook


  • Devito – automating the finite difference method

    Devito is a domain-specific Language (DSL) and code generation framework for the design of highly optimised finite difference kernels for use in inversion methods. Devito utilises SymPy to allow the definition of operators from high-level symbolic equations and generates optimised and automatically tuned code specific to a given target architecture.

    [+] more
  • Firedrake – automating the finite element method

    Firedrake is a compiler for a domain specific language – the “Unified Form Language” of the FEniCS project. Users type in their differential equation, specify how it is to be discretised, and set solver parameters. The system generates high performance code, using a variety of domain-specific optimisations – to run on your laptop, your supercomputer or in the cloud. It supports a large and growing community of users, particularly in geophysical fluid dynamics.

    [+] more
  • OP2 – a software abstraction for parallel computing with unstructured meshes

    OP2 is a source-to-source program transformation tool for C++ and Fortran, that supports high-performance computing with unstructured grids – as are commonly found in finite volume and finite element codes for solving partial differential equations. OP2 is based on a “decoupled access-execute” model, which separates local computation at a mesh element from the issues involved in executing it in parallel. OP2 can generate code for multicore CPUs, GPUs and large HPC clusters.

    [+] more
  • SLAMBench – benchmarking real-time 3D scene understanding for accuracy, performance and energy

    SLAMBench is a benchmark suite for visual SLAM – simultaneous localisation and mapping, the key problem in understanding the 3D world in real time. SLAM is central to many applications in robotics, autonomous vehicles, and augemented and virtual reality. SLAMBench enables users to test different SLAM algorithms and to evaluate them with respect to accuracy, performance and power consumption – thus enabling users to map the landscape of SLAM solutions to find the right approach for their application context.

    [+] more