Microsoft, Accenture, Thoughtworks and NTT Data are among the founding members of a new industry initiative to drive forward the development of sustainability in software.
Through the Green Software Foundation, the companies have released an initial specification called Software Carbon Intensity (SCI) for measuring the carbon footprint of software. The overall goal of SCI is to offer a method for scoring a software system based on its carbon emissions.
Among the principles of software development is the mantra of “never reinventing the wheel”, which encourages software developers to use off-the shelf software libraries rather than develop code themselves. Although these libraries are valuable time-savers, sometimes they may be overkill or offer much more functionality than the developer actually needs. They may not be as efficient as something developed from scratch to solve a very specific problem, they may be more power-hungry and have a larger carbon footprint than alternative lightweight software libraries that offer less functionality.
“Developers have become lazy,” said Chris Lloyd-Jones, head of open technologies at Avanade, the services business formed from the joint venture between Microsoft and Accenture.
At a high level, said Lloyd-Jones, the specification is fundamentally based on a set of core principles, such as measuring that the workload usage of a CPU correlates roughly to how much electricity a piece of code uses. Another simple measurement is the cost of cloud-based infrastructure-as-a-service (IaaS). An application will cost more to run if it requires more cloud-based resources, such as higher CPU usage, and the use of graphics processing units (GPUs).
In fact, data from Avanade shows there is a direct correlation between the cost of running the same workload on different Microsoft Azure instances and its carbon footprint. For instance, running a workload for 24 hours on Microsoft’s NC6v2 Azure GPU instance would cost €91, with the workload using 3.3kWh of electricity in 24 hours. For comparison, Avanade said that running the same workload for 24 hours on Azure Function would use only 0.8 kWh of electricity and its running cost would total €0.51 for 24 hours of usage.
Discussing how SCI would work, Lloyd-Jones said: “The idea is that you don’t measure the total [carbon footprint] of the software. Instead, you have a score to drive down your carbon footprint.” This, he said, enables software developers to find ways to make their code more energy-efficient by taking actions to reduce the carbon footprint of the software they develop.
Another aspect of the specification is to help organisations make decisions on whether to use more efficient hardware and measures such as running workloads at times when there is less demand on the national grid, or when a greater proportion of electricity is being generated sustainably. Although work is still needed to enable datacentre operators to provide a real- time measurement of sustainable energy generation, Lloyd-Jones believes such tracking is only a few years away and cloud providers offer some hooks to help developers track energy usage.
“Microsoft has a sustainability calculator, which can query the current state of Azure to understand when is the right time to deploy code,” he said. Taking into account peak electricity usage and when more is available from green energy sources can also help to improve the carbon footprint of software, he added.
For Lloyd-Jones, traditional IT admin practices are among the biggest challenges to overcome in developing software that takes into account the carbon footprint of the code being deployed. For instance, even in the era of cloud-first computing, many IT departments generally purchase more cloud resources than they actually need. In the cloud, he said, “cost equals carbon footprint, near enough – right-sizing optimises both cost and carbon footprint”.