Energise: Refactorings and Skeletons for Energy-Aware Applications on High-Performance Embedded Systems

Lead Research Organisation: University of St Andrews
Department Name: Computer Science

Abstract

Non-functional properties, including, for example, energy, are becoming increasingly and critically important for programming embedded devices. These devices, typically rely heavily on battery power, and have restrictive constraints (or energy budgets) within which to operate. Devices such as tablets, phones, drones, medical devices and the Internet of Things, all of which are becoming ever more commonplace in society, are driving the pressing demand for optimisation of energy usage in applications that execute on them.

Furthermore, as the global climate change crisis becomes critical, our carbon footprints are accelerating at an alarming rate, partly due to increased energy consumption from computing devices in the modern world. New green-computing techniques are needed in order to reduce the overall energy consumption of computing devices, without decreasing their overall performance.

Despite this, dealing with energy consumption is often treated as a secondary concern, and when addressed, something of a black-art to the average developer, where energy budgets are often met by developers randomly changing source code or applying optimisations in the hope that energy budgets will be achieved indirectly. Furthermore, these embedded devices are becoming increasingly parallel, with multi-core hardware now commonplace in e.g. smart phones and tablets. However, dealing with energy properties at the language level usually requires developers to have highly specialised skills, and use low-level tools and techniques.

Even small devices, such as the Raspberry Pi and the Jetson Nano, offer high-performance low-energy models of hardware, at very affordable prices. Parallel hardware can offer hardware manufacturers a route to low-energy consumption, as multi-core typically increases the performance of the software, while also decreasing its energy usage.

Consequently, there is a very clear and timely need to provide the typical non-specialist programmer with the necessary software development tools and programming abstractions required to develop applications that are able to conform to specified energy requirements, thereby making software developers more lean, agile and productive; and software, and the devices they run on, more greener.
To date, there has been very little effort on the fundamental and essential problems of:

- providing suitable abstractions to the programmer, allowing them to program with energy as a target goal; and,
- determining how to correctly transform code structure so that it yields optimal energy results, or targets the software to stay within a pre-defined energy budget.

The Energise project will directly tackle these fundamental problems by building on and complementing current research into both program transformation and algorithmic skeletons. Unusually, and very importantly, \TheProject{} \emph{tackles the energy crisis from a software-engineering perspective}, employing software-development techniques such as refactoring, and high-level programming abstractions using novel energy-optimised skeletons.

This is a critical and fundamental goal to solving the energy ---and, therefore, the green-computing--- crisis in general.

Planned Impact

Engagement with Industry

We will actively engage with our industrial partners throughout the course of the Energise project. Dr Christopher Brown has a long experience of working as a PDRF on EU FP7 and H2020 projects, including ParaPhrase and RePhrase, and also as PI on the EU H2020 TeamPlay project, where he has made many industrial connections with large companies in and out of Europe, including IBM (Haifa), Sopra, Programming Research (PRQA), EvoPro Innovations, Samsung and Accenture. In addition to these, Dr Brown has also been heavily pursuing entrepreneurship, where his spin off company ParaFormance Technologies Ltd led to many industrial collaborations and potential early adopters, including Greycon, Luxemberg Institute of Technology (LIST), Adobe, Toshiba Medical, and others. Dr Brown will actively pursue these contacts as part of the Energise project. In addition to these industrial contacts, the Energise project will engage with our project partners such as SCCH, SkyWatch, AbsInt, and CiberSAM.

Formation of Startup Companies

At the University of St Andrews, Dr Christopher Brown has already been participating in strong entrepreneurial activities leading to a formation of a spin-off company from the university, called Paraformance Technologies Ltd backed by £530k from Scottish Enterprise. We will pursue further entrepreneurial activities possibly resulting in further spin-off companies from the university. Furthermore, the technology and research undertaken as part of the project will lead to significant technological and scientific advances in strong areas of the market will little to no competition; this will become part of a spin-off commercial strategy.

Engagement with General Academia

Energy-critical applications running on specialised multi-core embedded devices are appearing everywhere in society from surveillance drones, medical camera pills, mobile phones, and automotive vehicles. Indeed high-performant low-energy software solutions is applicable to a wide range of areas, including medicine, biology, chemistry, physics, engineering, image processing, and many more. We also plan to collaborate closely with Professor Kerstin Eder and her team at the University of Bristol who specialise in energy models for embedded systems, which we will utilise as part of the Energise technology.

Public Engagement

We will endeavour to participate in many public engagements. We will also disseminate out results via the project websites, videos, podcasts, interviews, white papers, flyers, magazine articles and press releases. We will ensure all of our publications are made available on open access repositories such as PURE and Zenodo. We will actively engage in developing open-source software of the tools; this software will be made available to the public via open-access public software repositories, such as GitHub.

Project Workshops

We plan to run one public technical project workshop per year. These will be co-located with major conferences and events in the field of energy modelling and parallelism, and we will engage with both academic and industrial events. Such events include e.g. HiPEAC, PDP and EuroPar. We will also target industry specific events to co-locate with, such as the ARM research summit in Cambridge. We will run the workshops as open events, attracting wide participation, and invite keynote speakers who are leading in the field of energy modelling, parallel programming, etc.