Problem: global warming

The ICT sector emits 4% of global greenhouse gas (GHG) and is quickly growing1

Note that 4% GHG correspond to 341 large-scale power stations at the size of 12TWh/year2.

Complication: performance of software is hard to fix

A huge fraction of these costs is caused by inefficient software

• software development since 1960 focused on minimizing HR costs
• packaged software producers do not pay the hardware and energy bill
• accelerated code bloat forces companies and consumers to replace hardware early before footprint amortization

There is little awareness of the material cost of IT3 and removing the technical dept of the last 60 years would cost millions of man-years4.

Solution: improve sorting libraries

Part of this technical dept can be removed with little effort5, because it is encapsulated in libraries

• about half6 of the ICT cost is related to CPU-work (168 Nuclear Power Stations)
• sorting is responsible for 25%7 of CPU-Work (42 Nuclear Power Stations)
• sorting is one of the most fundamental operations in computers and the basis for many other algorithms
• sorting is one of the most expensive operations in computers
• doubling data size more than doubles sorting costs ($$\mathcal{O}(N\log{N})$$)
• slow sorting limits user experience and hence drives early replacement of good enough hardware before amortization
• is has been shown experimentally that clever choice of sorting algorithms can reduce energy consumption8
• much of sorting uses algorithms from few central libraries, improving those has huge impact

Indeed, I believe that virtually every important aspect of programming arises somewhere in the context of sorting or searching ― Donald E. Knuth9

1. 12TWh/year is the average size of a nuclear power station↩︎

2. See for example The Most Expensive One-byte Mistake↩︎

3. 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↩︎

4. The other half of ICT costs is related to network communication and external devices such as screens↩︎

5. Estimate of IBM according to Kurt Mehlhorn (KIT)↩︎

6. “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↩︎

7. The Art of Computer Programming, Volume 3, Sorting and Searching^↩︎