DEV Community

Cooper Cole
Cooper Cole

Posted on

Actionable ways to make software greener

Originally posted on my blog: coops.coffee

Building and testing models is a carbon-intensive process. In one of my favorite research papers Energy and Policy Considerations for Deep Learning in NLP, three UMass Amherst graduates explain the need for researchers to have equitable access to computational resources and the need for prioritizing computationally efficient hardware and algorithms. In this paper, it was discovered that the process of building and testing a final paper-worthy model required 4,789 models jobs that emitted more than 78,468 pounds of carbon. For reference, 78,000 pounds is the equivalent of consumption from 7 average humans and 39 plane rides for 1 passenger from NYC to SF.

AI leaves behind a heavy carbon footprint but there are ways to mitigate the carbon output. As there are ways to mitigate the carbon footprint of all software. My focus here to make green software development the norm. From AI to web development, there is a role we can all play in making software greener. The recommendations will be short and sweet. My goal here is to recommend 1-2 actions per topic with a resource, author, or podcast to accompany the discussion.

Tools πŸ› 

Each model is different such as the one above focused on Deep Learning in NLP. To understand the energy consumption of models, it's imperative to paint a picture by collating metrics. There are other pieces of the puzzle such as when you train models and cloud compute services. Tools can range from code-based, OS-based, energy-based, and so on. Below are just a few recommendations of papers and tools.

  1. Code Carbon is a package that integrates into Python codebases and estimates the amount of CO2 produced by the computing resources used to execute the code
  2. Ensure that the energy used to power your models is green. I recommend this paper from Microsoft on the importance of taking the step towards a green cloud. Whether run in-house or via the cloud, cleaner energy mixes make a substantial difference in the carbon output of AI. Overall, it has been argued that running via GPUs is more sustainable and cost-efficient than running in-house.
  3. Cloud Carbon Footprint is an analysis tool for understanding cloud usage impact on the environment
  4. Website Carbon Calculator estimates your website's carbon footprint
  5. Check to see if your website is hosted green with Green Web Check

On this topic, I'd love to recommend Abhishek Gupta's paper on The Imperative for Sustainable AI. Abhishek is a co-worker but also someone I greatly admire. I'm consistently impressed with his work in green software and ethical AI. In fact, I learned about Code Carbon through his paper. Check out his work!

Policy πŸ“œ

Arguably, anyone who builds or manages software has the opportunity to change the way software has been traditionally written. We can create policies within our own organizations and companies to urge the adoption of green principles in our software. By utilizing the resources below, I hope it serves as an opportunity to further adopt or innovate policies for your engineering teams to build green. With that, I'd like to introduce these resources:

  1. Principles.green
  2. Green Web Design

Building policy from the top-down or influencing it from the bottom up can lead to a monumental push in how software is developed.

For this section, I'm recommending this How Green is Your Software from the Harvard Business Review

Coalitions & Communities 🌍

Green software engineering is still a niche community. The largest community of engineers, designers, and writers that I've found focused on green software (and have had the opportunity to join is) the Green Software Foundation.

Change the culture of building software across the tech industry, so sustainability becomes a core priority to software teams, just as important as performance, security, cost, and accessibility.

-- Green Software Foundation's Vision

Building coalitions, founding organizations, and creating communities around green software can be a focal point in how change is driven. The Green Software Foundation is an inclusive community focused on developing an ecosystem for creating green software. The work is open-source and done in public. The community is driven by the values and mission of the Green Software Foundation and that is reflected in the work that is done.

Having a committed group of individuals working together to build sustainable tools, develop research papers, and create resources to educate others is a significant way to drive change. Whether you create an employee resource group at work dedicated to green software or start a club at your university around sustainability you can make a change. You are building a community of sustainably driven individuals all working towards the collective good of making sustainability a central part of their jobs, school, and community.

Coalitions and communities can help drive change at a broader scale, allow for innovation, and create scalable action.

Top comments (0)