The ICT sector emits 4% of global greenhouse gas (GHG) and is quickly growing ― Lean ICT Report1
4% GHG correspond to 341 large-scale power stations at the size of 12TWh/year2. A huge fraction of these energy costs is caused by inefficient software.
Because algorithm design requires human ingenuity, however, it is hard to anticipate advances ― Leiserson et. al3
There is little awareness of the material cost of IT4. Yes there is Green IT (more efficient CPUs) but also huge Rebound Effects (more use of IT for e.g. big data, more network costs between devices and clouds, bitcoin craziness and other cryptocurrencies). Particularly the energy cost of software is widely ignored and digitalization is rather seen as a vehicle to promote sustainability elsewhere. Yes there are Principles of Sustainable Software Engineering, some teaching on them, some blogging, some articles, a difficult to find TED Talk on Green Coding and an academic book on Green in Software Engineering, however, not much, of this arrives in practice, and nothing improves existing legacy software. Green coding is hard work and scales badly: removing the technical dept of the last 60 years would cost millions of man-years5.
in many areas, performance gains due to improvements in algorithms have vastly exceeded even the dramatic performance gains due to increased processor speed — Report to the President and Congress6
Part of the technical dept in software can be removed with little effort7, because it is encapsulated in libraries:
Indeed, I believe that virtually every important aspect of programming arises somewhere in the context of sorting or searching ― Donald E. Knuth11
12TWh/year is the average size of a nuclear power station↩︎
More work of many parties is required to follow for example these 10 Best Practices for Green IT System or this List of Quick Wins to make your software application more efficient↩︎
The other half of ICT costs is related to network communication and external devices such as screens↩︎
“Computer manufacturers of the 1960’s estimated that more than 25 percent of the running time of their computers was spent on sorting, when all their customers were taken into account. In fact, there were many installations in which the task of sorting was responsible for more than half of the computing time. From these statistics we may conclude that either there are many important applications of sorting, or many people sort when they shouldn’t, or inefficient sorting algorithms have been in common use.” — Donald Knuth, The Art of Computer Programming, Volume 3, Sorting and Searching↩︎
“Developers made much effort to optimize hardware in order to reduce their energy consumption. However, we show in this paper that one also has to consider energy awareness in terms of software. In this study we focus on sorting algorithms, which are not only used directly by the user of a device but also very often implicitly by other algorithms. Our experiments show, that different sorting algorithms have different energy consumptions”, Bunse et. al. 2009, Exploring the Energy Consumption of Data Sorting Algorithms in Embedded and Mobile Environments↩︎
The Art of Computer Programming, Volume 3, Sorting and Searching↩︎