Research Associate position available I have funding for a 3 year PDRA. The topic is "Adaptive Optimisation and Migration of Heterogeneous Parallel Pattern Programs".

PhD Studentship available I have one fully funded PhD position for either overseas or EU/UK. There is more info here. The topic is "Adaptive Optimisation and Migration of Heterogeneous Parallel Pattern Programs".

(20th Feb 2019) TEST OF TIME AWARD at CGO 2019 For paper "Automatic Feature Generation for Machine Learning Based Optimizing Compilation".

(20th Feb 2019) BEST PAPER AWARD at CGO 2019 For paper "Function Merging by Sequence Alignment".

(22nd Nov 2018) I have been interviewed by the IoT Podcast. Listen here.

(12th Jul 2018) DISTINGUISHED PAPER AWARD at ISSTA 2018 For paper "Compiler Fuzzing through Deep Learning".

(24th Sep 2017) BEST PAPER AWARD at PACT 2017 For paper "Synthesizing Benchmarks for Predictive Modeling".

(8th Feb 2017) BEST PAPER AWARD at CGO 2017 For paper "End-to-end Deep Learning of Optimization Heuristics".

(10th Oct 2014) BEST PAPER AWARD at IISWC 2014 For paper "Measuring QoE of Interactive Workloads and Characterising Frequency Governors on Mobile Devices.".



I am a reader (associate professor) in the School of Informatics at the University of Edinburgh. I am a member of the CARD group and of the Edinburgh ARM Center of Excellence. I am a Royal Academy of Engineering / EPSRC Research Fellow. I am a Chancellor's Fellow of the University of Edinburgh. Previously, I worked for a while in industry, for Microsoft in Seattle and Trilogy in Austin.

Prospective Students


Do you want to do a PhD? Being an advisor to students is by far the best part of my job, I love it. Have a look at my research areas below. If any of those grab you, then shoot me an email. It is nearly always possible to find money for good students. Make sure you have a look at the advice below.

NEWS: I have one fully funded PhD position for either overseas or EU/UK.

Tips on applying and having a successful PhD

A PhD is a long degree, probably it will be 4 years of your life. And, different from your first, taught degree, it is extremely specialised on one or two areas. That is a long time to spend on something if it does not excite you.

So, the first thing is to ask yourself why you want a PhD. There are lots of reasons people have, but the best reason, in my opinion, is that you really, really want to explore some area or question in computer science. Are you fascinated by some problem and just wish someone would give you the time to try out all your ideas on it? That's an excellent way to begin!

Let me tell you what I see my role as. I see myself as your advisor, not your supervisor. By that I mean that I am not your boss. You will make your own decisions and are quite at liberty not to take my advice. In fact, I expect you to argue with me - if you haven't told me I'm wrong about at least one thing by the end you can't have become the expert that a PhD is supposed to qualify you to be. I think it is important that students get that freedom (I could not have stomached my PhD if my advisor had been the supervisor type). But, I am aware that some people prefer to be told what to do step by step and treat a PhD more like a job or a taught degree than the creative self driven experience I want for you. That's okay, we can do that too, but if you know this ahead of time, consider a different academic - there are lots who do the boss thing.

If you do want to do a PhD with me, here's how it will go:

  1. After you first contact me, I'll give you a short 'do at home' programming test. This serves two purposes for me. The first is that it quickly filters out the time wasters. "You're joking!" I hear you cry? No really, there are lots of people who send out form letters to hundreds of academics. Often, they have copied and pasted my research interests into their letter, and probably not even bothered to make the fonts consistent with the rest of their letter. These people tend not to reply to a programming test. The second thing is that it gives me a quick idea of your programming ability. I assume that you already know how to program, and unless you are amazing in some other ways, I would probably recommend you not do a PhD with me if you can't program. This test doesn't have a deadline, but how long you take to complete it will be taken into account.
  2. We have a phone/Skype/Hangout/etc interview. For me, I want to hear about why you want to do a PhD, what your ideas are, and find out if you're someone I could work with. I'll also give you a short 'live' programming test. "Another one, really?" Yes, some people have actually cheated on the at home test before! Often I invite another academic to the call to get a second opinion. You should use this call to find out at least how a PhD would work with me and whether you think you could work with me.
  3. You should probably talk to some of my students (or the students of any academic you intend to study with). Send them an email and maybe arrange a chat. Do they like working with me? What are my worst faults? Would they rather they had done a PhD with someone else? And on and on. You never know what things they might tell you and they could save you from making a horrible mistake!
  4. Now, you apply with all the forms here. One important part here is that you write a research proposal. This is just a few sides of A4, structured a bit like a research paper (abstract, background, related work, etc). Even if I think you are great and want to accept you, students have to make it through selection panels where things like your CV and research proposal will be discussed and must be approved by several academics.
  5. While we wait for that, we (well probably I) find you funding. You might need to fill out more forms to apply for various scholarships. Normally the funding pays your fees and gives you a living allowance. Sometimes it might also include travel money and a small equipment budget. The fees for overseas students are about twice that of EU/UK students (although Brexit might soon mean that will include EU students, too!). There are also fewer pots of money that can be used for overseas students. These things mean overseas students are harder to fund and typically have to be that much better to make it worthwhile. Please don't let that discourage you, funding is often found for great students!
  6. Assuming we're all good up to this point you should get an acceptance letter from the University. It could still be several months before your start date. You have to work out your travel and accommodation (sorry the University doesn't give much help and gives no financial help beyond your stipend). Probably during this time, if you are up for it, we will meet online occasionally (say once a month) to discuss papers and ideas, etc. But, if you are busy working or doing whatever, don't feel you have to have these meetings.
  7. Great! Hopefully you are now in Edinburgh starting your PhD! This should be fantastic! I can't wait to meet you in person!



Rodrigo Caetano Rocha

PhD Student

Auto paralellisation

Chris Cummins

PhD Student

Deep Learning Over Programs

Oğuz Ergin

Post Doc - Finished 2016

Vertical Data Centre Integration

Associate Professor

Stephen Kyle

PhD - Graduated 2015

Virtual Machines

Researcher at ARM Ltd.

Paschalis Mpeis

PhD Student

Interactive Iterative Compilation

William Ogilvie

PhD Student

Active Learning for Compilers

Pavlos Petoumenos

Post Doc

Energy Accounting

Volker Seeker

PhD Student

Low Energy Mobile Systems

Chad Verbowski

PhD Student

Self Optimising Data Centres



My research is about improving the energy consumption and performance of computers, ranging from mobile systems to data centres. The energy used by the World's computers is staggering and growing exponentially. If we don't do something to fix it we are going to need a nuclear power station on every street corner just so we can all stalk each other on Facebook.

My work often uses machine learning and deep learning to discover new ways to optimise programs and systems.

A list of some ongoing projects is below.

ALEA - Abstraction-Level Energy Accounting for Many-core Programming Languages

Project supported by:

  • Pavlos Petoumenos

    Performance profiling has been around for a long time, but there is nothing similar for energy. This project builds mechanisms to determine how much energy each line of a program's source code consumes. And, it determines how data structures contribute to energy consumption. Energy consumption will be matched against programming language abstractions, from basic-blocks to functions, loops, and parallel constructs, and from variables to data structures, providing developers with the information that they need. Without tools like this, developers cannot optimise their programs for energy. Built on top of this, we apply machine learning techniques to automatically optimise programs for energy consumption.


DIVIDEND - Distributed Heterogeneous Vertically IntegrateD ENergy Efficient Data Centres

Project supported by:

  • Oğuz Ergin
  • Volker Seeker

    Our world is in the midst of a “big data” revolution, driven by the ubiquitous ability to gather, analyse, and query datasets of unprecedented variety and size. The sheer storage volume and processing capacity required to manage these datasets has resulted in a transition away from desktop processing and toward warehouse-scale computing inside data centres. State-of-the-art data centres, employed by the likes of Google and Facebook, draw 20-30 MW of power, equivalent to 20,000 homes, with these companies needing many data centres each. The global data centre energy footprint is estimated at around 2% of the world’s energy consumption and doubles every five years. Contemporary data centres have an average overhead of 90%, meaning that they consume up to 1.9 MW to deliver 1 MW of IT support; this is not cost-effective or environmentally sound. If the exponential data growth and processing capacity are to scale in the way that both the public and industry have come to rely upon, we must tackle the data centre energy crisis or face the reality of stagnated progress. With the semiconductor industry’s inability to further lower operating voltages in processor and memory chips, the challenge is in developing technologies for large-scale data-centric computation with energy as a first-order design constraint. The DIVIDEND project attacks the data centre energy efficiency bottleneck through vertical integration, specialisation, and cross-layer optimisation. Our vision is to present heterogeneous data centres, combining CPUs, GPUs, and task-specific accelerators, as a unified entity to the application developer and let the runtime optimise the utilisation of the system resources during task execution. DIVIDEND embraces heterogeneity to dramatically lower the energy per task through extensive hardware specialisation while maintaining the ease of programmability of a homogeneous architecture. To lower communication latency and energy, DIVIDEND leverages SoC integration and prefers a lean point-to-point messaging fabric over complex connection-oriented network protocols. DIVIDEND addresses the programmability challenge by adapting and extending the industry-led heterogeneous systems architecture programming language and runtime initiative to account for energy awareness and data movement. DIVIDEND provides for a cross-layer energy optimisation framework via a set of APIs for energy accounting and feedback between hardware, compilation, runtime, and application layers. The DIVIDEND project will usher in a new class of vertically integrated data centres and will take a first stab at resolving the energy crisis by improving the power usage effectiveness of data centres by at least 50%.


SUMMER - SchedUling on heterogeneous Mobile Multicores based on quality of ExpeRience

Project supported by:

  • Pavlos Petoumenos
  • Volker Seeker

    Users want mobile devices that appear fast and responsive, but at the same time have long lasting batteries and do not overheat. Achieving both of these at once is difficult. The workloads employed to evaluate mobile optimisations are rarely representative of real mobile applications and are oblivious to user perception, focussing only on performance. As a result hardware and software designers' decisions do not respect the user's Quality of Experience (QoE). The device either runs faster than necessary for optimal QoE, wasting energy, or the device runs too slowly, spoiling QoE. SUMMER will develop the first framework to record, replay, and analyse mobile workloads that represent and measure real user experience. Our work will expose for the first time the real Pareto trade-off between the user's QoE and energy consumption. The results of this project will permit others, from computer architects up to library developers, to make their design decisions with QoE as their optimisation target. To show the power of this new approach, we will design the first energy efficient operating system scheduler for heterogeneous mobile processors which takes QoE into account. With heterogeneous mobile processors just now entering the market, a scheduler able to use them optimally is urgently needed. We expect our scheduler to be at least 50% more energy efficient on average than the standard Linux scheduler on an ARM BIG.LITTLE system.

Self‐Optimisation of Internet Services

Project supported by:

  • Chad Verbowski

    Modern Internet services such as search, social networking, online shopping, media services, gaming, and email can span as many as 1,000,000 servers, requiring multiple geographically distributed instances to serve customers around the world. The financial cost of building and operating each of these various services can be more than US$1 billion annually. In addition, it is critical that the performance of these services are highly optimised across all servers and datacenter locations. Experiments slowing user responses by as little as 100ms have caused a measurable decrease in user engagement. Given the large scale and impact of these systems, optimising them presents a significant resource saving opportunity and a chance to improve overall service quality.

    This project presents a novel idea for making significant improvements to the capacity utilisation of these servers thus potentially saving many millions of dollars annually, and in addition will improve the end-user perceived availability of these services and reduce the latency they experience when using them.

User Experience Driven CPU Frequency Scaling On Mobile Devices Towards Better Energy Efficiency

Project supported by:

  • Pavlos Petoumenos
  • Volker Seeker

    Mobile computing devices such as smartphones and tablets have become tightly integrated with many people’s life, both at work and at home. Users spend large amounts of time interacting with their mobile device and demand an excellent user experience in terms of responsiveness, whilst simultaneously expecting a long battery life between charging cycles. Frequency governors, responsible for increasing or decreasing the CPU clock frequency depending on the current workload and external events, try to balance the two contrasting goals of high performance and low energy consumption. However, despite their critical role in providing energy efficiency it is difficult to measure the effectiveness of frequency governors in an interactive environment. In this paper we develop a novel methodology for creating repeatable, fully automated, realistic, workloads that can accurately measure time lag in interactive applications resulting from non-optimally selected operating frequencies. We also introduce a new metric capturing the user experience for different ANDROID frequency governors. We evaluate interactive workloads to demonstrate how our approach enables us to automatically record and replay sequences of user interactions for different system configurations. We demonstrate that none of the available ANDROID frequency governors performs particularly well, but leave substantial room for improvement. We show that energy savings of up to 27% are possible, whilst delivering a user experience that is better than that provided by the standard ANDROID frequency governor. We also show that it is possible to save 47% energy with performance that is indistinguishable from permanently running the CPU at the highest frequency.

Applications of Information Sharing for Code Generation in Process Virtual Machines

Project supported by:

  • Stephen Kyle

    This project looks at improving VM performance. It considers aspects of parallelisation, program fuzzing, and crowd sourced optimisation.



CompuCast is a podcast for computer scientists and anyone with a taste for delving deeper into understanding computers and their related technologies.

Podcasts RSS

A few years ago I couldn't find any podcasts for computer scientists. There were lots for the other sciences and a few for engineers, but none for us. Honestly it was getting to the stage that if I had to listen to another story about global warming I think I was going to set fire to a polar bear!

So, myself and a few friends decided to do something about it - Compucast was born! We set out to produce an interesting and varied show aimed specifically at those with a reasonable level of understanding of computer science: we don't want to dance around the detail, we want to embrace it and really learn something.

In each show correspondents with some expertise in the field will present several recently published and thoroughly researched computer-science related features. The idea is then to intertwine the nitty gritty detail of these with some more light-hearted topics (jokes and a quiz) so that we don't lose anyone as the show progresses. We will also present a news section that will guide you through the innovative, the surreal and the absurd of the previous few months.

If this sounds like something you can be entertained by, then listen to our latest podcast, at By the way, that is the new swanky website made by Zheng Wang. The old, ugly one, made by me is still around at

Compucast has changed a bit over the years. For a couple of years after my daughter was born I didn't have time for it, so it languished for a bit. Now we're back with a new, enthusiastic team. The show is also now a joint collaboration between three universities, the University of Edinburgh, the University of Lancaster, and the University of St Andrews.



UG4 and MSc - Compiler Optimisation - 2019

Course page

This course introduces students to modern techniques in efficient implementation of programming languages. Modern processors and systems are designed based on the assumption that a compiler will be able to effectively exploit architectural resources. This course will examine in detail techniques to exploit instruction level parallelism, memory hierarchy and higher level parallelism. It will examine classic static analysis approaches to these problems and introduce newer feedback directed and dynamic approaches to optimisation. The course work will require students to implement selected optimisations in a research compiler.

Timetable Semester 2
Monday10:0010:50Appleton TowerAT2.11
Thursday10:0010:50Appleton TowerAT2.11
DeadlineThursday 4pm Feb 21st 2019
FeedbackThursday 4pm Mar 7th 2019
Lecture Notes
Tools and Resources
Ayrton Massey's Data-Flow Tutor. Ayrton was a student of mine who built this rather excellent teaching tool for you. BTW, you can fork his project for this on GitHub.
Engineering A Compiler (pdf). This is the pdf of the first text book. I assume this is legit, but haven't checked, or downloaded it myself. Download at your own risk!

Programming Club

It is quite possible to finish an undergraduate CS degree at Edinburgh without having done a huge amount of programming. The purpose of the of the course is not to turn students into programmers, but rather to give them the very important theoretical skills that make decent programmers into extraordinary programmers. We leave learning to be an expert in at least one programming language to the students to do in their own time. After all, if we were determined to teach that to students, there wouldn't be any time left over for the theoretical things. Unfortunately, this can lead to a rather rude awakening for students who haven't learned programming on their own time when they go out to try and get a job.

So, I run a completely voluntary, no credits course/club for students to get more practice. Once a week during term time we have a couple of hours in an informal, relaxed lab where we offer different challenges for students to attack. We have programming competitions, short projects, talks, and guest speakers. There should be something for everyone at whatever stage they are at. The hope is that students will find something in the class to inspire them and then take it further during their free time. So far, feedback has been that students find the course fun, interesting, and useful - phew!

GitHub Repository

Mailing List



1 Effective Function Merging in the SSA Form

Rodrigo CO Rocha, Vasileios Porpodas, Pavlos Petoumenos, Zheng Wang, Murray Cole, Hugh Leather

PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation

June 2020 Online

bibtex | abstract

2 Vectorization-aware loop unrolling with seed forwarding

Rodrigo CO Rocha, Vasileios Porpodas, Pavlos Petoumenos, Luís FW Góes, Zheng Wang, Murray Cole, Hugh Leather

Proceedings of the 29th International Conference on Compiler Construction

February 2020 San Diego, CA, USA

bibtex | abstract

3 COLAB: A Collaborative Multi-factor Scheduler for Asymmetric Multicore Processors

Teng Yu, Pavlos Petoumenos, Vladimir Janjic, Hugh Leather, John Thompson

Proceedings of the 2020 International Symposium on Code Generation and Optimization

February 2020 San Diego, CA, USA

bibtex | abstract

4 A Case Study on Machine Learning for Synthesizing Benchmarks

Andrés Goens, Alexander Brauckmann, Sebastian Ertel, Chris Cummins, Hugh Leather, Jeronimo Castrillon

Proceedings of the 2019 International Workshop on Machine Learning and Programming Languages

June 2019 Phoenix, Arizona, USA

bibtex | abstract | paper(pdf)

5 Function Merging by Sequence Alignment

Best Paper Award

Rodrigo C. O. Rocha, Pavlos Petoumenos, Zheng Wang, Murray Cole, Hugh Leather

Proceedings of the 2019 International Symposium on Code Generation and Optimization

February 2019 Washington DC, USA

bibtex | abstract | paper(pdf) | slides(pdf)

6 Compiler Fuzzing through Deep Learning

Distinguished Paper Award

Chris Cummins, Pavlos Petoumenos, Hugh Leather, Alastair Murray

Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2018)

July 2018 Amsterdam, Netherlands

bibtex | abstract | paper(pdf)

7 Right-sizing Server Capacity Headroom for Global Online Services

Chad Verbowski, Ed Thayer, Paolo Costa, Hugh Leather, Bjoern Franke

Proceedings of the 38th IEEE International Conference on Distributed Computing Systems (ICDCS 2018)

July 2018 Vienna, Austria

bibtex | abstract | paper(pdf)

8 End-to-end Deep Learning of Optimization Heuristics

Best Paper Award

Christopher Cummins, Pavlos Petoumenos, Zheng Wang, Hugh Leather

Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT 2017)

September 2017 Portland, Oregon, US

bibtex | abstract | paper(pdf)

9 Synthesizing Benchmarks for Predictive Modeling

Best Paper Award

Chris Cummins, Pavlos Petoumenos, Zheng Wang, Hugh Leather

Proceedings of the International Symposium on Code Generation and Optimization (CGO'17)

4 February 2017 Austin, Texas USA

bibtex | abstract | paper(pdf)

10 Minimizing the cost of iterative compilation with active learning

William Ogilvie, Pavlos Petoumenos, Zheng Wang, Hugh Leather

Proceedings of the International Symposium on Code Generation and Optimization (CGO'17)

4 February 2017 Austin, Texas USA

bibtex | abstract | paper(pdf)

11 ALEA: A Fine-grained Energy Profiling Tool

Lev Mukhanov, Pavlos Petoumenos, Zheng Wang, Nikos Parasyris, Dimitrios Nikolopoulos, Bronis de Supinski, Hugh Leather

Journal of ACM Transactions on Architecture and Code Optimization (TACO)

bibtex | abstract | paper(pdf)

12 Predicting and Optimizing Image Compression

Alexander Murashko, Hugh Leather, John Thomson

Proceedings of the 24th ACM International Conference on Multimedia MM '16

15 October 2016 Amsterdam, The Netherlands

bibtex | abstract | paper(pdf)

13 Parallel Computing: Accelerating Computational Science and Engineering (CSE)

Hugh Leather, Mark Sawyer, Mark Parsons, Gerhard Joubert, Frans Peters

Advances in Parallel Computing 25

April 2014


14 The Lambda Calculus: Practice and Principle

Hugh Leather, Janne Irgens

A List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday 201--206

25 March 2016

bibtex | abstract | paper(pdf)

15 Towards Collaborative Performance Tuning of Algorithmic Skeletons

Christopher Cummins, Pavlos Petoumenos, Michel Stewer, Hugh Leather

Proceedings of the International Workshop on High-Level Programming for Heterogeneous and Hierarchical Parallel Systems (HLPGPU 2016)

January 2016 Prague, Czech Republic

bibtex | abstract | paper(pdf)

16 Iterative Compilation on Mobile Devices

Paschalis Mpeis, Pavlos Petoumenos, Hugh Leather

Proceedings of the 6th International Workshop on Adaptive Self-tuning Computing Systems (ADAPT 2016)

January 2016 Prague, Czech Republic

bibtex | abstract | paper(pdf)

17 Autotuning OpenCL Workgroup Size for Stencil Patterns

Christopher Cummins, Pavlos Petoumenos, Michel Stewer, Hugh Leather

Proceedings of the 6th International Workshop on Adaptive Self-tuning Computing Systems (ADAPT 2016)

January 2016 Prague, Czech Republic

bibtex | abstract | paper(pdf)

18 On the Inference of User Paths from Anonymized Mobility Data

Galini Tsoukaneri, George Theodorakopoulos, Hugh Leather, Mahesh K. Marina

Proceedings of the 1st IEEE European Symposium on Security and Privacy (EuroSandP 2016)

March 2016 Saarbrücken, Germany

bibtex | abstract | paper(pdf)

19 Power Capping: What Works, What Does Not

Pavlos Petoumenos, Lev Mukhanov, Zheng Wang, Hugh Leather, Dimitrios Nikolopoulos

Proceedings of the 21st IEEE International Conference on Parallel and Distributed Systems (ICPADS), 2015

December 2015 Melbourne, Australia

bibtex | abstract | paper(pdf)

20 Application of Domain-aware Binary Fuzzing to Aid Android Virtual Machine Testing

Stephen Kyle, Hugh Leather, Bjorn Franke, Dave Butcher, Stuart Monteith

Proceedings of the 2015 International Conference on Virtual Execution Environments (VEE'15)

March 2015 Istanbul, Turkey

bibtex | abstract | paper(pdf)

21 Intelligent Heuristic Construction with Active Learning

William F Ogilvie, Pavlos Petoumenos, Zheng Wang, Hugh Leather

Proceedings of Compilers for Parallel Computing (CPC) 2015

January 2015 London, England

bibtex | abstract | paper(pdf)

22 Measuring QoE of Interactive Workloads and Characterising Frequency Governors on Mobile Devices.

Best Paper Award

Volker Seeker, Pavlos Petoumenos, Hugh Leather, Bjorn Franke

IISWC '14: Proceedings of the 2014 IEEE International Symposium on Workload Characterization (BEST PAPER!)

October 2014 Raleigh, North Carolina, USA

bibtex | abstract | paper (pdf) | presentation (pptx) | video for presentation - sample workload | video for presentation - auto replay

23 Fast Automatic Heuristic Construction Using Active Learning

William F. Ogilvie, Pavlos Petoumenos, Zheng Wang, Hugh Leather

LCPC '14: Proceedings of the Workshop on Languages and Compilers for Parallel Computing

15 September 2014 Hillsboro, Oregan, USA

bibtex | abstract | paper (pdf)

24 Automatic Feature Generation for Machine Learning--based Optimising Compilation

Hugh Leather, Edwin Bonilla, Michael O'Boyle

ACM Trans. Archit. Code Optim. 11 14:1--14:32

Feb 2014

bibtex | abstract | paper(pdf)

25 Active learning accelerated automatic heuristic construction for parallel program mapping

William Ogilvie, Pavlos Petoumenos, Zheng Wang, Hugh Leather

Proceedings of the 23rd international conference on Parallel architectures and compilation (PACT'14) 481--482

24 August 2014 Edmonton, Alberta, Canada

bibtex | abstract | paper(pdf)

26 Auto-tuning Parallel Skeletons

Alexander Collins, Christian Fensch, Hugh Leather

Parallel Processing Letters (PPL) 22 1240005-1--16

June 2012

bibtex | abstract | paper (pdf)

27 Efficiently Parallelizing Instruction Set Simulation of Embedded Multi-Core Processors Using Region-based Just-in-Time Dynamic Binary Translation

Stephen Kyle, Igor Bohm, Bjorn Franke, Hugh Leather, Nigel Topham

LCTES '12: Proceedings of the ACM SIGPLAN/SIGBED 2009 Conference on Languages, Compilers, and Tools for Embedded Systems

12 June 2012 Beijing, China

bibtex | abstract | paper (pdf)

28 MaSiF: Machine Learning Guided Auto-tuning of Parallel Skeletons

Alexander Collins, Christian Fensch, Hugh Leather

Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques (PACT'12) PACT '12 437--438

2012 Minneapolis, Minnesota, USA

bibtex | abstract | paper(pdf)

29 Optimization Space Exploration of the FastFlow Parallel Skeleton Framework

Alexander Collins, Christian Fensch, Hugh Leather

HLPGPU '12: Proceedings of High-Level Programming for Heterogeneous and Hierarchical Parallel Systems

23 January 2012 Paris, France

bibtex | abstract | paper (pdf)

30 Raced Profiles: Efficient Selection of Competing Compiler Optimizations

Hugh Leather, Michael O'Boyle, Bruce Worton

LCTES '09: Proceedings of the ACM SIGPLAN/SIGBED 2009 Conference on Languages, Compilers, and Tools for Embedded Systems

25-28 June 2009 Dublin, Ireland

bibtex | abstract | paper (pdf) | slides (open office)

31 Automatic Feature Generation for Machine Learning Based Optimizing Compilation

Best Presentation Award (2009) and Test of Time Award (2019)

Hugh Leather, Edwin Bonilla, Michael O'Boyle

CGO '09: Proceedings of the International Symposium on Code Generation and Optimization

March 2009 Seattle, United States of America

bibtex | abstract | paper (pdf) | slides (open office) | slides no animation (pdf)

32 MILEPOST GCC: machine learning based research compiler

Grigori Fursin, Cupertino Miranda, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Ayal Zaks, Bilha Mendelson, Phil Barnard, Elton Ashton, Eric Courtois, Francois Bodin, Edwin Bonilla, John Thomson, Hugh Leather, Chris Williams, Michael O'Boyle

Proceedings of the GCC Developers' Summit

June 2008 Ottawa, Canada

bibtex | abstract | paper (pdf)

33 Automatic Feature Generation for Setting Compilers Heuristics

Hugh Leather, Elad Yom-Tov, Mircea Namolaru, Ari Freund

SMART'08: 2nd Workshop on Statistical and Machine learning approaches to ARchitectures and compilaTion

January 2008 Göteborg, Sweden

bibtex | abstract | paper (pdf) | slides (open office)

34 Emergency Evacuation using Wireless Sensor Networks

Barnes M, Leather H, Arvind D K

Proceedings of the 32nd IEEE Conference on Local Computer Networks (LCN 2007) - Volume 00

October 2007 Dublin, Ireland

bibtex | abstract | paper (pdf)

1 Machine Learning in Compilers

Hugh Leather

School of Informatics, University of Edinburgh


bibtex | thesis (pdf)

Invited Talks
1 Deep Learning for Compilers

St. Andrews University

24 March 2019 St. Andrews, Scotland

2 Deep Learning for Compilers


3 December 2018 Paris, France

3 Deep Learning for Compilers

National Technical University of Athens

28 November 2018 Athens, Greece

4 Deep Learning for Compilers


9 November 2018 Toronto, Canada

5 Deep Learning for Compilers


8 November 2018 Toronto, Canada

6 Program Generation with Deep Learning

Seoul National University

18 September 2016 Seoul, South Korea

7 Reducing the High Cost of Low Latency


1 February 2016 Manchester, England

8 Energy Accounting for Program Optimisation

Lancaster University

28 January 2015 Lancaster, England

9 Measuring QoE of Interactive Workloads

Intel Corporation

15 September 2014 Hillsboro, Oregan, USA

10 Fast Automatic Heuristic Construction


12 October 2014 Raleigh, North Carolina, USA

11 Active learning accelerated automatic heuristic construction


24 August 2014 Edmonton, Alberta, Canada

12 Automatic Feature Generation for Machine Learning Based Optimizing Compilation


26 February 2014 Edinburgh, Scotland

13 Machine Learning in Compilers

Peking University

23 November 2013 Beijing, China

14 Mobile System Optimisation

Qualcomm Ltd

18 August 2013 San Jose, California, USA

15 Operating System Optimisation

Freescale Ltd

24 March 2013 East Kilbride, Scotland

16 Machine Learning in Compilers

Beihang University

13 March 2013 Beijing, China

17 Accelerating Programs with Iterative Compilation

Baidu Ltd

12 March 2013 Beijing, China

18 Optimising Compilers with Machine Learning

Hong Kong University of Science and Technology (HKUST)

07 March 2013 Hong Kong, China

19 Mobile Device Optimisation with Machine Learning

SCONE (SCOttish Networking Event)

08 February 2013 Edinburgh Scotland

20 Machine Learning Compilers and Mobile Systems

University of St Andrews

11 April 201 St Andrews, Scotland

21 Optimising the Mobile Net


17 September 2012 Cambridge, England

22 How to Give a Research Presentation

SICSA Conference 2012

21 June 2012 Glasgow, Scotland

slides (open office) | slides (pdf)

23 Machine Learning, Compilers and Mobile

Department of Computer Science

15 May 2012 St.Andrews, Scotland

slides (open office) | slides (pdf)

24 Automatic Feature Generation for Machine Learning in Compilers

Department of Computer Science

29 February 2012 Manchester, Scotland

slides (open office) | slides (pdf)

25 Optimising the Mobile Net


17 May 2011 Staines, England

26 How to Give a Research Presentation

PhD Induction 2011

21 October 2011 Firbush, Scotland

slides (open office) | slides (pdf)

27 Collaborative Machine Learning Compiler and OS Optimisation for Android Devices


31 May 2011 Cambridge, England

28 How to Give a Research Presentation

SICSA Conference 2011

24 May 2011 Edinburgh, Scotland

slides (open office) | slides (pdf)

29 Machine Learning in Compilers for Parallelisation

ACES, University of Texas

27 May 2009 Austin, Texas, USA

slides (open office)

30 Optimising Compilation with Machine Learning

Rice University

26 May 2009 Houston, Texas, USA

slides (open office)

31 Machine Learning in Compilers

Google Technical Talks

21 May 2009 Mountain View, California, USA

slides (open office)

32 Efficient Selection of Competing Compiler Optimizations

Trinity College Dublin

19 June 2009 Dublin, Ireland

33 Automatic Feature Generation for Setting Compiler Heuristics

University of Gothenburg

27 January 2008 Goteborg, Sweden

34 Learning Compilers for Configurable Processors

Korea-EU Cooperation Forum on ICT

16-17 June 2008 Seoul, S. Korea

slides (pdf)

35 Machine Learning for Configurable Processors

ARC International

2008 St. Albans, UK

36 Extensibility for GCC


2007 Paris, France

37 libPlugin: a Plugin Library for GCC

IBM Research

2007 Haifa, Israel

38 Scripting Compilers

CAPS Enterprise

2006 Rennes, France



This website has been designed by my very good friend, Ed Brooke. If you like a website built for you, he's your guy! He can be found at Thanks so much for the Website, Ed!

Copyright © 2016. All rights reserved. Design by oddsok.