Thomas Koehler

I am a PhD student in the School of Computing Science at the University of Glasgow in Scotland, supervised by Michel Steuwer and Phil Trinder.

Before coming to Glasgow I was a student at Sorbonne Université in Paris, France.

You can read my Curriculum Vitae to learn more.

Simplifying the Development of Efficient Software

Making the most out of current and future hardware is essential to improve execution time and power consumption in many domains, all the way from embedded to high performance computing. In particular, I believe that improving energy efficiency is vital for computing to have a sustainable and positive impact on our quality of life.

However, optimizing low-level code by hand for each application and target hardware is costly. At the same time, hardware architectures are becoming increasingly complex, parallel and heterogeneous. This is why I am interested in simplifying the development of efficient software through higher-level abstractions and novel compilation techniques.

An Extensible Compiler to Optimize Image Processing

Image processing applications running on embedded hardware have limited computing and energy resources. Software optimization often results in significant improvements that are critical for an application viability. Manual optimization is costly.

State-of-the-art domain-specific compilers successfully automate many optimizations, but they lack flexibility to adapt to the constantly evolving hardware and optimizations. In my PhD studies, I intend to demonstrate how a domain-agnostic compiler produces faster code than a state-of-the-art domain-specific compiler, by being extensible with domain-specific optimizations, increasing flexibility.

This will be achieved by contributing to the Lift project. Lift combines a high-level functional language with a system of rewrite rules to define and explore an implementation space. I am extending Lift with image-processing optimizations, allowing to explore alternatives that are not considered in state-of-the-art compilers for image processing. I aim to show that this improves the performance of real-world image processing applications on a range of embedded, parallel and heterogeneous devices.