The carbon footprint of software is easy to overlook. After all, it’s the hardware that actually consumes the energy and makes the emissions.
But all our data centers would have no emissions if they weren’t running software. They wouldn’t even exist, because we wouldn’t have built them!
It's not just the building
It is very odd that the movement towards green data centers focuses on hardware - and almost exclusively on the air conditioning and cooling systems in the buildings, without paying much attention to the IT kit, and what it is doing.
This really is a blind spot. We all know that software is often bloated. Our phones and laptops have ten times the processing power they had a few years ago, but we don’t see the performance increase, because the software soaks up all the extra cycles, with inefficient coding and unnecessary features.
They used to say “What Intel giveth, Microsoft taketh away” (in the 1990s, it was “What Andy [Groves] giveth, Bill [Gates] taketh away”).
Most code can be rewritten to make it run more quickly, and require less hardware, and most processes can be streamlined. Imagine if you could do that with all the software running in a 50MW data center. You might run it all in 25MW.
You’d have space for expansion - and you could avoid building an entire extra data center. And as they say, the greenest data center is the one you don’t need to build.
Carbon efficient, carbon aware
The blind spot won’t be ignored forever. Industry group the Green Software Foundation. is working on the subject. It’s produced a report on the State of Green Software, and three of its members, Anne Currie, Sarah Hsu, and Sara Bergman, are writing a book, Building Green Software, to be published by O’Reilly.
The issue is complicated because software can’t easily be seen in isolation from the hardware it runs on, or the people that are using it.
Software is a bit like the passengers on a transport network. You can look at the hardware, and make buses and cars more efficient, but you can also make reduce inefficiency, and make it run smoother by modifying the behavior of passengers. Making software green is a little like that.
Green software has two big features. Firstly, it is engineered to be carbon-efficient. As Currie, Hsu, and Bergman put it: “Green software is designed to require less power and hardware per unit of work.”
To help with this, the Foundation is working on Software Carbon Intensity (SCI), a measure that scores software based on its emissions.
But software must also be “carbon-aware.” It should include some sort of probe that tracks what impact it has on the planet and allows it to act autonomously to reduce that, either moving to more efficient hardware, or greener power sources.
Last year, in a podcast, entrepreneur and academic David Mytton told us about software that is aware of where it is running, what energy is being used, and what carbon that consumes.
As Currie, Hsu, and Bergman put it: “Green software attempts to shift its operations, and therefore its power draw, to times and places where the available electricity is from low carbon sources like wind, solar, geothermal, hydro, or nuclear.”
Green software can also back off and slow down when the electricity is dirty: “For example, it might reduce its quality of service in the middle of a windless night when the only available power is being generated from coal.”
Green software creators are serious about changing things, they are not hippy idealists. But I suspect the movement is counter-cultural, for two main reasons. Firstly, the big data center operators are in thrall to the illusion that they can be carbon neutral and have no impact on the planet.
More data centers mean more money for developers, so the developers like the idea that carbon-neutral facilities can allow them to expand indefinitely, without ever addressing software sprawl. Green software should counter that.
Secondly, green software will require effort and a major rethink on how projects are evaluated. The big reason behind software bloat is the trade-off between efficiency and productivity. It’s easy to make something quickly using high-level tools, without looking in detail at how it works. Ironing out the kinks and inefficiencies takes more effort.
That kind of effort doesn’t get taken, because all software is being created quickly, to a schedule that is about productivity - getting something out of the door before the competitors, or the deadline - rather than efficiency.
If we are to truly tame the emissions of our tech industry, we need some big changes. And we need green software to make them happen.