Getty Images

Microsoft offers developer guidance on green software tools

Microsoft, UBS and others back developers' use of open source carbon-aware tools. Two case studies -- one enterprise and one academic -- demonstrate green software tools in action.

A new white paper from Microsoft and emerging academic projects look to encourage enterprise adoption of green software, with open source tools that real-world developers can use to measure carbon footprint.

The white paper, released Jan. 10, documented a partnership among Microsoft, Swiss bank UBS and the Green Software Foundation to provide architectural guidance on how to implement two open source tools for carbon-aware computing: the software carbon intensity specification, which assesses emissions according to where and when electricity is consumed, and the Carbon Aware SDK, which helps developers run software using the least-carbon-intense energy sources at the optimal time to reduce emissions. The white paper described how an experimental implementation of these utilities was used to assess the carbon footprint of Advanced Compute Quantum Analytics, a risk management application from UBS. This meant that UBS's application workload was shifted to Azure batch processing times with lower demand from other Azure customers, and thus lower carbon intensity, to decrease its carbon emissions.

This type of software optimization has the potential to save enterprises money while tackling climate change, said Todd Myers, environmental director at Washington Policy Center and author of Time to Think Small: How Nimble Environmental Technologies Can Solve the Planet's Biggest Problems.

"If you can shift away from peak hours when energy is most carbon-intensive, you are already saving electricity, you're already saving money and reducing the carbon intensity," he said.

Zeus project trains AI via carbon-aware computing tools

Software development has a significant carbon footprint, particularly with the growth of AI and cloud computing, said Zhenning Yang, undergraduate research assistant at University of Tennessee, Knoxville.

This has led to an increase in energy consumption and carbon emissions from the use of GPUs for training deep neural networks. Tools such as the Carbon Aware SDK can provide developers with the information they need to make informed decisions and create more carbon-efficient or green software, he said.

For example, Yang and colleagues at the SymbioticLab research group at the University of Michigan used information provided by the Carbon Aware SDK to develop carbon-aware Zeus, an energy optimization framework for deep neural network (DNN) training. Zeus automatically adjusts GPU power limits based on real-time carbon intensity, which resulted in a 24% reduction in carbon emissions during DNN training, Yang said.

These tools have the potential to significantly reduce the carbon footprint of software development and make a meaningful contribution to the fight against climate change.
Zhenning YangUndergraduate research assistant, University of Tennessee, Knoxville

"These tools have the potential to significantly reduce the carbon footprint of software development and make a meaningful contribution to the fight against climate change," Yang said.

Carbon-aware data center software will make a difference to world climate change, said Jae-Won Chung, a Ph.D student in computer science at the University of Michigan.

Chung also worked on the Zeus project. He said that although the Carbon Aware SDK played a key part in the development of Zeus, there is room for improved documentation and response speed on the project.

"But I would still say it's very easy to use for any decent developer," Chung said.

Yang echoed Chung's sentiment that obtaining carbon-intensity data from these tools is straightforward for developers. But incorporating that data into the software development process can require additional engineering effort, he said. For example, engineers can access the Carbon Aware SDK via a command line interface, but they can also choose to deploy the Carbon Aware SDK API as a container alongside an application in a cluster, or separately.

Green software tools seek an enterprise home

Open source tools are a good first step in making software applications more environmentally friendly, but enterprise developers' priority will be user experience, followed by cost, said Jim Douglas, president and CEO of Armory, a continuous deployment SaaS vendor.

How Carbon Aware SDK interfaces with carbon intensity
Carbon Aware SDK adds carbon measurements to applications.

"If they can tie [carbon-aware tools] into cost optimization without jeopardizing customer experience -- for example, performance, reliability and stability of services -- it will be adopted," Douglas said. "If not, adoption will be slow."

Further efforts in publicizing and convincing not only developers and product managers, but also people higher up in the chain of command, of the importance of energy efficiency and carbon awareness is the key to fueling change, Chung said.

"But that's of course not enough," he said. "The majority of software must adopt energy and carbon awareness to generate a tangible difference."

Even if enterprises are slow to buy in, developers' hands are not tied, said Marco Santos, CEO Americas at GFT Group, an IT consulting company based in Germany, which mandates a green coding certification for all employees. With carbon-aware computing tools, developers can create more efficient and more optimized software, he said.

"If you code badly, you can have an application running [for] 10 hours, then if you do it in a better way, you can have it running [for] five minutes," he said.

But Santos also echoed Chung's sentiment that tools alone are not enough.

"The tools can coach the developers," he said. "But on top of that, what's needed is a broader approach in order to train developers so that we can be more efficient and create an impact."

Dig Deeper on Software design and development

Cloud Computing
App Architecture