Deep Online Cognition in Modular Software

Lead Research Organisation: Lancaster University
Department Name: Computing & Communications


Have you ever wondered how much energy it takes to visit the BBC news website? Or send an email? Or watch iPlayer? All these modern everyday services consume an increasing amount of energy on a global scale through sites called "data centres" - large computer facilities which your computer, phone or tablet talks to when it uses these services. By 2020, these data centres are expected to represent up to 20% of total worldwide energy consumption.

This project aims to reduce energy consumption by enabling data centres to service more users in a shorter time. This would allow us to use smaller, more efficient, data centres thus reducing the amount of energy that they consume. We will achieve this by developing a new way for the software that runs inside data centres -- the software that sends web pages or video content to your computer -- to analyse itself in real-time, to locate areas of inefficiency, and to automatically correct these inefficiencies when they are observed.

This real-time analysis is a continual process. The kinds of user requests that are seen by a data centre change over time, meaning that the data centre software needs to continually optimise itself against new types of access and workload patterns generated by the current population of users. The optimal software that is needed to respond to requests for many small HTML and image files may, for example, be completely different to the optimal software that is needed to respond to requests for a few large popular media streams. Existing evidence shows data centre software is very difficult to optimise for a single user workload pattern, never mind the fluctuating patterns to which real data centres are subjected over time.

The approach we are taking in this research has yet to be tried in any prior work -- it is uniquely enabled by a new way of building software that has been developed by the lead investigator of this project. For the first time this approach involves fully automated learning and understanding by a piece of software about the capabilities and performance levels of each sub-element (or 'component') that makes up that software. Over time the software will build up an understanding of how each of its components performs against various user workload patterns to which it is subjected, and how the performance of those components relates to the current performance level of the overall software system. When the overall performance level drops, for example due to a shift in the user workload pattern, the individual software component or components responsible for this performance drop will be automatically identified and exchanged for other components that are known to perform better in the current set of operating conditions.

In essence this approach will ultimately lead to a kind of "assisted" model of software development, where software itself acts as an active member of its own development team to identify and correct inefficiencies while the software is running. When uncorrectable inefficiencies are detected, due to the lack of any high-performing alternative components, the software will notify its development team of this situation and will ask them to design new alternative components to suit a particular set of operating conditions.

We are confident that the novel approach taken by this research will be successful in achieving previously untapped performance improvements and has the potential not only to save energy at data centres but to create a whole new model of software development -- a model in which software itself is able to reason about its own design and about its efficacy for a particular purpose.

Planned Impact

The research will contribute to the UK's international standing in research excellence, tackling two major challenges in modern computer science -- the automated optimisation of complex software and the increasing energy consumption of data centres. Beyond this, our work will have two major avenues for broader impact.

The first of these results from our focus on reducing the energy consumption of data centres, an activity that is impactful to a large section of the digital economy, including data centre operators, web hosting companies, major application-level service providers such as Google and the BBC, and a large range of smaller companies that rely on data centre services to support their day to day operations. By offering solutions that reduce energy costs at data centres, and correspondingly which directly reduce operating costs, we enable organisations to spend more time and money on innovation rather than on operations. As one of Europe's leading data centre operators, the UK has a key interest in this sector. In this project we have direct access to industry stakeholders at two of the above levels: firstly via direct collaboration with the BBC as a major application-level service provider; and secondly with the host institution's KBC business incubation unit which houses a variety of smaller companies that rely on web services. In detail, the BBC represents a major data centre user to support its extensive web site (one of the top 100 most popular sites in the world), the iPlayer, and a wide range of internal systems. As a publicly funded organisation the BBC has serious constraints in terms of both scale and operational costs and so represents an excellent partner to whom we can disseminate our results, including the potential deployment of experimental prototype software. Additionally, because the BBC outsources many of its data centre operations to third-party companies, we will also have access to these connections to further disseminate our research work. The host institution's KBC, meanwhile, represents the other end of the spectrum with a collection of very small companies. This may lead to commercialisation opportunities for some elements of the research in terms of energy-saving data centre technology.

The second major impact avenue is in our endeavour to bring a higher level of reasoning to software systems such that they are able to learn and understand their own capabilities in real-time. This has the potential to be a highly disruptive innovation which will fundamentally change the way in which software is developed. Instead of large teams working to design every detail of a software system, those teams will focus on higher-level aspects of system composition and will expect the software itself to assist in the design of its own fine-grained details. In the further future, this will see software take an increasingly prominent role as a member of its own "development team", resulting in software development lifecycles that are cheaper, faster, and which produce more reliable results. Our research helps to place the UK at the leading edge of this vision -- an immediate impact being the training of an RA and a PhD student in the key technology that supports the vision.
Description This research has developed the world's first approach to runtime emergent software - these are software systems which assemble themselves from small component models, and continually re-assemble themselves from other parts as they learn which combinations of behaviour work best in the current environment in which they are operating. We have developed both the fundamental software-building technology to enable this, and the broader machine learning / AI models to orchestrate it. We have demonstrated our work using data centre software such as web servers, showing that such software can rapidly learn how best to design itself in real-time to maximise its own efficiency, without any human guidance on how to do this.
Exploitation Route Our work is currently receiving interest from industry, including several ongoing discussions on how specific companies may apply our approach to their own systems. We have also received significant interest from other research groups in further building on our work.
Sectors Digital/Communication/Information Technologies (including Software),Electronics

Description We have received selected media coverage (reported elsewhere) describing our research results to date. This has also led to interest from industry in integrating our results and becoming a partner in future research projects, which we are currently exploring.
First Year Of Impact 2016
Sector Digital/Communication/Information Technologies (including Software)
Description BBC R&D 
Organisation British Broadcasting Corporation (BBC)
Department BBC Research & Development
Country United Kingdom of Great Britain & Northern Ireland (UK) 
Sector Public 
PI Contribution The award of this grant has enabled active collaboration with BBC R&D as a partner. Work to date has primarily involved legal agreements to enable the transfer of data from the BBC to us.
Collaborator Contribution The BBC has completed a legal agreement process and we are now awaiting delivery of real-world datacentre trace logs which will be important in experimenting with our new theories.
Impact N/A (this is too early in the project)
Start Year 2015
Title An early prototype runtime framework for machine-augmented software design 
Description This is one of our main technical platforms and contributions, demonstrating a way for software to learn about its own design / composition and behaviour in different environments. We have developed the first version of this platform as an early prototype. It continues to be our main platform for further development, experimentation and analysis. 
Type Of Technology Software 
Year Produced 2016 
Impact This software is key to our ongoing research.