How much carbon is your software responsible for? Awareness of power consumption and accountability for it are the first steps in a green development cycle. Credit: SL Photography / Getty Images In December 2023, delegates from almost 200 countries met in Dubai for the UN’s climate-change conference, COP28, to discuss the pressing need to reduce emissions, as reported by IEEE in this article. According to the website sustainability scoring tool Ecograder, and as the authors are quick to point out, the COP28 website produces 3.69 grams of CO2 per page load. Those webpage hits add up. If the site gets 10,000 monthly views for a year, its emissions would be slightly more than a one-way flight from San Francisco to Toronto. Here’s something else (this is a geek’s version of the bad news): Electric vehicles (EVs) are dirtier to build but eventually cleaner to drive. Someone who owns a costly electric car produces more carbon for the first 30,000 to 60,000 miles because of the carbon footprint for construction. Remember, coal-burning power plants still power most EV chargers. So, that’s a bummer. How green is software? Although software itself does not release emissions, it runs on data center hardware that does. Information and communications technology, also using software in data centers, is responsible for an estimated 2% to 4% of global greenhouse gas emissions. The article also points out that by 2040, that number could reach 14%. This is about as much carbon as air, land, and sea transport combined. Here are a few steps we can take: First, although we are good at writing software, we struggle to create software that optimally utilizes hardware resources. This leads to inefficiencies in power consumption. In the era of cloud computing, we view hardware resources as a massive pool of computing goodness readily available for the taking. No need to think about efficiency or optimization. Second, there has been no accountability for power consumption. Developers and devops engineers do not have access to metrics demonstrating poorly engineered software’s impact on hardware power consumption. In the cloud, this lack of insight is usually worse. Hardware inefficiency costs are hidden since the hardware does not need to be physically purchased—it’s on demand. Cloud finops may change this situation, but it hasn’t yet. Finally, we don’t train developers to write efficient code. A nonoptimized versus a highly optimized application could be 500% more efficient in power consumption metrics. I have watched this situation deteriorate over time. We had to write efficient code back in the day because the cost and availability of processors, storage, and memory were prohibitive and limited. Nowadays, those things are readily available and inexpensive. Power-hungry AI will make things worse Artificial intelligence has become one of the most important technological advancements of our time. We now have solutions that were once deemed impossible. Nevertheless, with all the progress and advancements, an underlying issue needs to be addressed. We must factor in AI systems’ hardware requirements and power consumption. Remember that GPUs require more power than CPUs, and there’s a new dot-com boom and a rise in GPU company valuation. GPU optimization in that arena remains an afterthought, with GPUs being sold as a necessary evil if you’re building AI systems. As companies work to reduce the carbon footprint of their AI models, a new conversation has arisen regarding sustainable AI practices. Where is the balance between promoting innovation and ensuring ecological responsibility? Many enterprises and technology providers give lip service to this topic, but I don’t see much hardware optimization around AI taking place. Yet. Sustainability pays off This is a good time to discuss power consumption before we make it worse by using AI. Remember, it’s not only about the environment; there are also financial implications. Anything that requires more power is more expensive. The shift towards sustainable software practices joins business and sustainability at the hip. I doubt we would be having these conversations if there were not compelling business advantages. That’s okay. The combination of ethical principles and economic considerations highlights the significance of sustainability as a key catalyst. Developing environmentally friendly websites and applications requires a shift in developers’ work ethics. Development should include reevaluating feature necessity, algorithmic efficiency, and code optimization to reduce energy consumption. We need to instill sustainability principles into the fabric of the software development process. This means we take our software efficiency game to the next level, with improved devops processes and toolchains. Developers must be architects of software that is more efficient and consumes less power. Adopting greener algorithms is a tactical move that aligns with the broader strategy of reducing energy consumption. Current research underscores that efficient algorithms reduce energy consumption during development and operation with negligible impacts on performance. On to the specter of AI. To ensure AI’s sustainability, we must take a conscientious approach to training data. “It’s the data, stupid,” gets to the most power-burning aspect of AI. Optimizing data usage and refining algorithmic processes can decrease energy expenditure; we have known that for decades. This underscores our need to train developers, AI engineers, and data scientists to build innovative AI systems that generate the least carbon. Organizations must insist on better sustainability practices. Typically, this can come with no impact on delivery time or cost. Yes, training and tools are additional expenses needed to drive more efficient AI development. You can’t have it both ways. The quest for sustainable software practices takes tools capable of measuring a software solution’s carbon footprint throughout its life cycle. These metrics offer invaluable insights, guiding developers toward practices that mitigate environmental impacts while ensuring the continued advancement of digital technologies. There is a growing trend towards green software engineering driven by educational initiatives and certification programs that emphasize sustainability in the software industry. Although we’re very good at identifying problems and devising solutions, we’re not very good at executing those solutions. I already see a growing number of chief sustainability officer jobs. Call me cynical, but experience tells me the emphasis will be on environmental, social, and governance (ESG) scores and public relations rather than actual performance. We must prioritize the creation of efficient software systems instead of just focusing on solar panels or EV chargers at the office. Here’s to hoping we can soon achieve something meaningful with sustainability efforts. Related content feature 14 great preprocessors for developers who love to code Sometimes it seems like the rules of programming are designed to make coding a chore. Here are 14 ways preprocessors can help make software development fun again. By Peter Wayner Nov 18, 2024 10 mins Development Tools Software Development feature Designing the APIs that accidentally power businesses Well-designed APIs, even those often-neglected internal APIs, make developers more productive and businesses more agile. By Jean Yang Nov 18, 2024 6 mins APIs Software Development news Spin 3.0 supports polyglot development using Wasm components Fermyon’s open source framework for building server-side WebAssembly apps allows developers to compose apps from components created with different languages. By Paul Krill Nov 18, 2024 2 mins Microservices Serverless Computing Development Libraries and Frameworks news Go language evolving for future hardware, AI workloads The Go team is working to adapt Go to large multicore systems, the latest hardware instructions, and the needs of developers of large-scale AI systems. By Paul Krill Nov 15, 2024 3 mins Google Go Generative AI Programming Languages Resources Videos