Content from Introduction
Last updated on 2024-12-23 | Edit this page
Overview
Questions
- What is green software and what does it mean for me as a user of HPC
Objectives
- Define green software
What is green software?
Green software is an emerging discipline at the intersection of climate science, software design, electricity markets, hardware, and data center design.
Green software is carbon-efficient software, meaning it emits the least carbon possible. Only three activities reduce the carbon emissions of software; energy efficiency, carbon awareness, and hardware efficiency. This training will explain all of these concepts, how to apply them to your processes and how to measure them, as well as some of the international guidelines and organizations that guide and monitor this space.
Who should read this?
Anyone involved in the process of building, deploying, or managing software. By studying these principles, a green software practitioner can make decisions that have a meaningful impact on the carbon pollution of their applications.
History
In 2019 the original eight principles of green software engineering were released. This 2022 update of the principles took on feedback received over the years, merging some principles and adding a new one regarding understanding climate commitments.
How to be a green software practitioner
The following training covers 6 key areas that a green software practitioner should know:
- Carbon Efficiency: Emit the least amount of carbon possible.
- Energy Efficiency: Use the least amount of energy possible.
- Carbon Awareness: Do more when the electricity is cleaner and do less when the electricity is dirtier.
- Hardware Efficiency: Use the least amount of embodied carbon possible.
- Measurement: What you can’t measure, you can’t improve.
- Climate Commitments: Understand the exact mechanism of carbon reduction.
Each of these chapters will introduce some new concepts and explain in detail why they are important in terms of the climate, and how you can apply them to your green software practices.
Principles, Patterns, and Practices.
This course’s key areas and content describe the principles of green software, a core set of competencies needed to define, build and run green software.
A green software pattern is a specific example of how to apply one or more principles in a real-world example. Whereas principles describe the theory that underpins green software, patterns are the practical advice software practitioners can use in their software applications today. Patterns are vendor-neutral.
A green software practice is a pattern applied to a specific vendor’s product and informs practitioners about how to use that product in a more sustainable way.
Practices should refer to patterns that should refer to principles.
The green software foundation also publishes a catalog of vendor-neutral green software patterns across various categories.
Key Points
- Green software adheres to…
Content from Carbon Efficiency
Last updated on 2024-12-23 | Edit this page
Overview
Questions
- What is the difference between global warming and climate change?
- What is the difference between climate and weather?
- What are greenhouse gases (GHGs)?
- What does the term carbon equivalence (CO2e) mean?
- How is climate change monitored and reported?
Objectives
- Understand key terms in environmental sustainability.
- Understand what CO2e means.
- Understand how changes in the climate are monitored.
Introduction
Understanding the impact of greenhouse gases on our environment is key to understanding software’s own carbon footprint. You will learn about the different kinds of greenhouse gases present in the environment, how they are emitted and measured, and what is being done by different organizations around the world to control and reduce these emissions.
You will find out about the GHG protocol and what it means for green software practitioners.
Key concepts
Global warming vs climate change
Global warming is the long-term heating of Earth’s climate system observed since the pre-industrial period (between 1850 and 1900) due to human activities, primarily fossil fuel burning. Climate change is long-term shifts in temperatures and weather patterns. These shifts may be natural, but since the 1800s, human activities have been the main driver of climate change.
Climate vs weather
Weather refers to the conditions of the atmosphere in a short period of time. Climate refers to the conditions of the atmosphere over long periods of time. Any changes to the long-term condition of the atmosphere will also cause changes to the short-term conditions. An obvious comparison is that if the average temperature of the atmosphere increases, the average temperature of the weather in any given season will also increase. Some examples of measurable changes to weather conditions due to climate change are:
- Changes to the water cycle, including rainfall
- Melting of ice
- Heating of the land, air, and ocean
- Changes in ocean currents, acidity, and salinity
These changes can lead to flooding - both in coastal areas and due to increased rainfall - drought, wildfires and more frequent extreme weather conditions.
Greenhouse gases and the greenhouse effect
Greenhouse gases are a group of gases that trap heat from solar radiation in the Earth’s atmosphere. These gases act as a blanket, increasing the temperature on the surface of the Earth. This is a natural phenomenon which has been accelerated due to man-made carbon emissions. Now the global climate is changing at a faster rate than that at which animals and plants can adapt.
Greenhouse gases and the greenhouse effect are crucial to all life on Earth and often come from natural sources like animals, volcanoes, and other geological activity. The greenhouse effect allows the Earth to maintain a higher temperature than it would without them by capturing more heat from solar radiation. Like many other natural processes of the Earth, the greenhouse effect is a finely tuned balance that can be upset by multiple factors.
Carbon and CO2eq
Carbon is often used as a broad term to refer to the impact of all types of emissions and activities on global warming. CO2eq/CO2-eq/ CO2e, which stands for carbon equivalence, is a measurement term used to measure this impact. For example, 1 ton of methane has the same warming effect as about 84 tons of CO2 over 20 years, so we normalize it to 84 tons CO2eq. We may shorten even further to just carbon, which is a term often used to refer to all GHGs.
Monitoring climate change
As a result of the effects of climate change and an ever-increasing number of destructive weather events, efforts have been made by the global community to address these issues and take steps to control and limit global warming in order to mitigate and reverse the effects of climate change.
The Paris Climate Agreement is an international treaty agreed in 2015 by 196 parties and the UN to reduce the Earth’s temperature increase. The agreement is to keep the rise in global mean temperature to 2°C compared to pre-industrial levels, with a preferable lower limit of 1.5°C. The agreement is reviewed every five years and mobilizes finance to developing nations to mitigate the impacts of climate change and prepare for and adapt to the environmental effects caused by climate change. In addition, each party is expected to update its progress through a Nationally Determined Contribution (NDC). As of October 2024, 195 parties, including the European Union, have joined the agreement.
The United Nations Framework Convention on Climate Change (UNFCCC) is a group created to achieve the stabilization of greenhouse gas concentrations in the atmosphere at a level that would prevent dangerous interference with the climate system.
The COP (Conference of the Parties) is an annual event involving all parties in the United Nations Framework Convention on Climate Change. At the conference, each party member’s progress on tackling global warming, as agreed as part of the Paris Climate Agreement, is reviewed and assessed. The COP is also a chance for parties to come together and make decisions that will reduce the effects of global warming. Common topics include strategies to reduce carbon, financing low carbon strategies and preservation of natural habitats.
The IPCC (Intergovernmental Panel on Climate Change), created by the UN in 1988, aims to provide governments at all levels with scientific information that they can use to develop climate policies. IPCC reports are also a key input into international climate change negotiations. The IPCC is an organization of governments that are members of the United Nations or the World Meteorological Organization (WMO). The IPCC currently has 195 members.
We will always emit carbon through our activities but being carbon efficient means minimizing the amount of carbon emitted per unit of work. We aim to ensure that for each gram of carbon we emit into the atmosphere, we extract the most value possible.
In the software space, the part we play in the climate solution is building carbon-efficient applications. Being carbon efficient is about building applications that add the same value for you or your users but which emit less carbon.
Summary
- Greenhouse gases are a group of gases contributing to global warming. Carbon is often used as a broad term to refer to the impact of all types of emissions and activities on global warming. CO2eq is a measurement term used to measure this impact.
- The international community, in groups such as the UNFCCC, has come together to limit the impact of global warming by reducing emissions, aiming for a ‘preferable’ lower limit of 1.5°C. This was agreed through the UN IPCC in 2015 in the Paris Climate Agreement and is monitored at the regular COP event.
- Everything we do emits carbon into the atmosphere, and our goal is to emit the least amount of carbon possible. This constitutes the first principle of green software: carbon efficiency, emitting the least amount of carbon possible per unit of work.
Key Points
- Emit the least amount of carbon possible.
Content from Energy Efficiency
Last updated on 2024-12-23 | Edit this page
Overview
Questions
- TBC
Objectives
- TBC
Introduction
Energy is the ability to do work. There are many different forms of energy, such as heat, electrical and chemical, and one type of energy can be converted to another. For example, we convert chemical energy from coal to electrical energy. In other words, electricity is secondary energy converted from another energy type. In this way, we can think of energy as a measure of the electricity used.
All software, from the applications running on mobile phones to the training of Machine Learning models running in data centers, consumes electricity. One of the best ways to reduce electricity consumption and the subsequent carbon emissions made by software is to make applications more energy efficient. However, that’s not where our responsibility ends.
Green software practitioners take responsibility for the energy consumed by their products and design them to consume as little as possible. We should make sure that, at every step in the process, there is as little waste as possible and that most of the energy goes to the next step.
The final step in this chain is represented by the end user of your product, not the finished product itself. This means our goal is not simply to make the most energy efficient code or the “greenest” software, but to think about the end user and how to make sure they are not creating unnecessary emissions.
This might mean batching jobs together to take advantage of energy proportionality or changing how a user uses your software. Let’s take a look at some of these concepts and some ways that you can become more energy efficient at every stage of the chain, right up to the final consumer.
Key concepts
Fossil fuels and high-carbon sources of energy
Most electricity is produced through burning fossil fuels, usually coal. Fossil fuels are made from decomposing plants and animals. These fuels are found in the Earth’s crust and contain carbon and hydrogen, which can be burned for energy. Coal, oil, and natural gas are examples of fossil fuels.
Most people think electricity is clean. Our hands don’t get dirty when we plug something into a wall, and our laptops don’t need exhaust pipes. However, since most electricity comes from burning fossil fuels and energy supply is the single most significant cause of carbon emissions, we can draw a direct line from electricity to carbon emissions. In these terms, electricity can be considered a proxy for carbon.
If our goal is to be carbon efficient, then it means our goal is also to be energy efficient since energy is a proxy for carbon. This means using the least amount of energy possible per unit of work.
Low-carbon sources of energy
Clean energy comes from renewable, zero-emission sources that do not pollute the atmosphere when used and save energy through energy-efficient practices. There are overlaps between clean, green, and renewable energy. Here’s how we can differentiate between them:
- Clean energy - doesn’t produce carbon emissions e.g. nuclear.
- Green energy - sources from nature
- Renewable energy - sources will not expire e.g. solar, wind
Energy measurement
- Energy is measured in joules (J), the SI unit of energy.
- Power is measured in watts, where 1 watt (W) is a rate corresponding to one joule per second.
- A kilowatt (kW) is, therefore, also a rate corresponding to 1000 joules per second.
- A kilowatt-hour (kWh) is a measure of energy (J) corresponding to one kilowatt of power sustained for one hour.
How to improve energy efficiency
Now that we know how energy is produced and the associated cost in terms of emissions, based on whether low- or high-carbon energy sources are used, let’s take a look at some of the ways green software practitioners can improve energy efficiency. Understanding power usage effectiveness and energy proportionality means you can make better decisions in terms of how to use energy in the most efficient way possible and waste less.
Power usage effectiveness
The data center industry uses the power usage effectiveness (PUE) metric, developed by Green Grid in 2006, to measure data center energy efficiency. Specifically, this relates to how much energy the computing equipment uses as compared to cooling and other overheads supporting the equipment. When a data center’s PUE is close to 1.0, computing is using nearly all energy. When the PUE is 2.0, this means an additional watt of IT power is required to cool and distribute power to the IT equipment for every watt of IT power it uses.
Another way to think of PUE is as a multiplier to your application’s energy consumption. So, for example, if your application consumed 10 kWh and the PUE of the data center where it is running is 1.5, then the actual consumption from the grid is 15 kWh: 5kWh goes towards the operational overhead of the data center, and 10 kWh goes to the servers that are running your application.
Energy proportionality
Energy proportionality, first proposed in 2007 by engineers at Google, measures the relationship between power consumed by a computer and the rate at which useful work is done (its utilization).
Utilization measures how much of a computer’s resources are used, usually given as a percentage. A fully utilized computer running at its maximum capacity has a high percentage, while an idle computer with no utilization has a lower percentage.
The relationship between power and utilization is not proportional. Mathematically speaking, proportionality between two variables means their ratios are equivalent. For example, at 0% utilization, a computer can draw 100W; at 50%, it draws 180W; and at 100%, it draws 200W. The relationship between power consumption and utilization is not linear and does not cross the origin.
Because of this, the more we utilize a computer, the more efficient it becomes at converting electricity to practical computing operations. One way to improve hardware efficiency is to run the workload on as few servers as possible, with the servers running at the highest utilization rate, maximizing energy efficiency.
Static power draw
The static power draw of a computer is how much electricity is drawn when in an idle state. The static power draw varies by configuration and hardware components, but all parts have some static power draw. This is one of the reasons that PCs, laptops, and end-user devices have power-saving modes. If the device is idle, it will eventually trigger a hibernation mode and put the disk and screen to sleep or even change the CPU’s frequency. These power-saving modes save on electricity, but they have other trade-offs, such as a slower restart when the device wakes up.
Servers are usually not configured for aggressive or even minimal power saving. Many use cases running on servers demand total capacity as quickly as possible because the server needs to respond to rapidly changing demands, which leads to many servers in idle modes during low-demand periods. An idle server has a carbon cost from both the embedded carbon as well as its inefficient utilization.
Key Points
- Electricity is a proxy for carbon, so building an application that is energy efficient is equivalent to building an application that is carbon efficient.
- Green software takes responsibility for its electricity consumption and is designed to consume as little as possible.
- Quantifying the energy consumption of an application is a step in the right direction to start thinking about how an application can operate more efficiently. However, understanding your application’s energy consumption is not the only story. The hardware your software is running on uses some of the electricity for operational overhead. This is called power usage efficiency (PUE) in the cloud space.
- The concept of energy proportionality adds another layer of complexity since hardware becomes more efficient at turning electricity into useful operations the more it’s used.
- Understanding this gives green software practitioners a better insight into how their application behaves with respect to energy consumption in the real world.