How to monitor and reduce the environmental impact of my software?
Description
There is an urgent need to reduce the environmental impact of our activities, and research is no exception. Many research institutes and funders have committed to achieving Net Zero (essentially a 90% reduction in carbon equivalent emissions) by 2050 or earlier. There are a range of tools and practices which researchers can adopt to reduce the environmental impact of their software.
Considerations
While vital for society, research is a significant source of carbon emissions. Thankfully there are a number of steps which can be taken to reduce emissions.
The Green Software Foundation suggests three aspects to consider:
- Energy efficacy - design software to consume as little energy as possible.
- Hardware efficiency - use the least amount of embodied carbon as possible.
- Carbon awareness - do more when the energy supply is clean and less when it is dirty.
There are a number of tools and programming techniques which can be used to first monitor then improve the energy efficiency of software (detailed below). Hardware efficacy considers emissions from the creation and disposal of the hardware used (embodied emissions), this can be maximised by extending the lifetime of hardware and (for cloud and HPC) increasing the utilisation of the device. Finally, the amount of clean electricity in an energy supply depends on location and time of the use. Software that is carbon aware tries to shift usage away from energy that is low in clean energy, through shifting in either time or space.
Similarly, the GREENER software principles (https://www.nature.com/articles/s43588-023-00461-y) sets out a series of principles to help guide the transition to more environmentally responsible computing including:
- Governance and Responsibility: All stakeholders, including grassroots movements, institutions, funding bodies, and industry partners, must take responsibility for reducing greenhouse gas (GHG) emissions in computational science. Both top-down and bottom-up approaches are necessary.
- Estimation: It is crucial to estimate and report the energy consumption and carbon footprints of computational processes to identify inefficiencies and raise awareness of environmental impacts.
- Energy and Embodied Impacts: Reducing the carbon intensity of computing requires addressing both operational energy consumption and the environmental cost of manufacturing hardware. Geographic location, hardware procurement, and data storage play significant roles.
- New Collaborations: International cooperation is vital to ensure that researchers, particularly in low- and middle-income countries, have access to low-carbon computing resources.
- Education and Research: Raising awareness about sustainable computational practices through training and integrating sustainability into educational curricula is essential. Research must also focus on creating energy-efficient algorithms and technologies.
Solutions
- Training
- Green software foundation provides a free course that introduces the basic concepts including embodied carbon, carbon intensity, demand shifting (and shaping) and measurement approaches. The course takes about 2 hours to complete.
- green-coding.io provide (paid for) workshops & training that focus on energy-efficient coding, environmentally responsible software design, and practical tools
- Certification
- GreenDiSC is a certification scheme for research groups (and central sustainability teams) that focuses on hardware and software.
- Green IT Professional (GITP) is a personal certification program that covers green ICT standards, carbon footprint calculation, and life cycle assessments.
- Evaluation Frameworks
- Software Carbon Intensity (SCI) Specification is an assessment framework for assessing and reducing software carbon intensity.
- Tools to monitor emissions
- CodeCarbon estimates the CO2 emissions from computing resources used by software.
- Green Algorithms is an online tool to estimate the carbon footprint of computational tasks using a web calculator. Currently being extended for use on HPC platforms.
- carbontracker is a tool that monitors and predicts energy and carbon footprint for training machine learning models.
- Greenspector Studio measures energy usage and resource efficiency in web and mobile applications.
- Ecograder evaluates website sustainability based on design and operational efficiency.
How to cite this page
TO DO.
References
TO DO.
Skip tool tableTools and resources on this page
Tool or resource | Description | Related pages | Registry |
---|---|---|---|
carbontracker | Tracks and predicts the energy consumption and carbon footprint of training deep learning models. | ||
CodeCarbon | A software package that integrates into Python codebase. It estimates the amount of carbon dioxide (CO2) produced by the cloud or personal computing resources used to execute the code. | ||
Ecograder | Evaluates website sustainability based on design and operational efficiency | ||
Green Algorithms | An online tool to estimate the carbon footprint of computational tasks using a web calculator. | ||
Greenspector Studio | Measures energy usage and resource efficiency in web and mobile applications. |
National resources
Tools and resources tailored to users in different countries.
Contributors