Energy consumption and CO2 footprints, if it’s up to IT-Branchen, will be parameters when companies and public sector authorities acquire new IT systems. A number of member companies have therefore asked researchers from Aalborg University (AAU) to identify how software affects the energy consumption of IT systems. The research project has just kicked off with colleagues from Roskilde University (RUC) and the Technical University of Denmark (DTU).
Increasing power consumption
Today, the Internet accounts for about ten percent of the world's total electricity consumption. And if you believe the British newspaper The Times, it costs just as much energy to watch a movie on Netflix as it does to boil water for 60 cups of tea. If you ask Google, one Google search consumes the same amount of energy as a 60W bulb turned on for 17 seconds.
− The trend is clear. IT burns more and more energy because we use it more and more, and it is becoming more and more sophisticated. Therefore, in the future, we need to be much more aware of the energy consumption that software generates, says Bent Thomsen, Professor in the Department of Computer Science at Aalborg University.
Software itself, of course, does not use energy, but the hardware the software runs on does. Hardware is run by software, so in the end there is a connection between software and energy consumption; thus, according to Bent Thomsen, it makes sense to talk about an energy label for software.
Software language, compiler and data centres
Bent Thomsen also questions the accuracy of calculations such as those of The Times and Google. Today, we are not in a position to calculate the energy consumption of a given IT system accurately. The focus of software developers has been on concepts like functionality and hardware size, and not on energy consumption. And being able to calculate energy consumption is the first step towards being able to make energy-label software at all.
− This is a very complex task because in principle we have to consider all the factors involved. The impact of the software on the power consumption of the individual computer, on the network, perhaps on a local server and, in the case of increasingly common cloud services, on the server side of the data centre, explains Bent Thomsen.
A major challenge is measuring the power consumption in the data centre because how do you measure the current in just the part of the data centre that the given software is running in? Also, several applications run on the same server, so an additional challenge is to separate out the software you want to measure power consumption on from the other applications running on the same server.
− If we look at an application like online banking, it might be running in a data centre on a server that also hosts Nordjyske Online, 117 banks or the public e-Boks. We don’t know which software is running in the same data centre, and which software we are actually interacting with. We actually don't even know which data centre it's running in.
Reducing power consumption
Once the method for measuring power consumption is in place, researchers can begin to define the energy label in conjunction with the right agencies. A natural next step will then be to look at how to reduce the power consumption that the software generates. According to Bent Thomsen, programming language and the compilers that translate the programming language into machine code are key to reducing energy consumption.
− The common programming languages like C++ and C# don’t operate with the concept of energy consumption, and this makes it very difficult for programmers to address it in the programs and in the code. So it’s necessary to develop programming languages that address energy consumption, so programmers are better equipped when developing new software, he says.
Energy conscious niche software
Knowledge is available is in niche areas where power consumption has been critical to functionality such as satellites and IoT. For instance, GomSpace uses specialized hardware or very simple hardware in their satellites in their satellites, as developers need predictability in terms of time and energy in order to figure out how much battery power is available in the satellites. The same goes for the IoT area where a battery needs to last as long as possible, which requires other tools and other ways of programming compared to the mainstream.
− These areas have required skilled programmers and more expensive hardware and tools. And in fact, we can see that the tools we’re using today simply can’t be scaled. They can cope with small pieces of software, 500 lines, maybe 1000 lines, but a program like Word has 500,000 lines of code, so there’s simply huge distance between what we know we can today and what we’d like to be able to do.
- An Aalborg University research group offers a wide range of competences in Big Data, programming languages, embedded systems, model checking, systems development and data centre operations for scientific computing.
- A Roskilde University research group is contributing a wide range of competencies in programming languages and energy-aware software development.
- The following companies are providing practical experience in software development, hosted software solutions, planning and running data centres:
- Edora A/S
- Digiplex1 ApS
- Infrateam ApS
- The first part of the project is funded in part by the innovation network InfinIT.