Carbon-Aware Computing

Info

Carbon-aware computing means, that the computing workload is aware about its current and future carbon emissions and is able to react to it in some way. For this, data on Energy Carbon Intensity is required.

Carbon-aware computing can be split up into two concepts: demand shifting (location or time) and demand shaping (adapt to demand).

Relevant aspect to enable Green Software.

Be aware of the pitfalls!

Resources:

Summary:
Unpredictable demand is likely to lead to more carbon emissions because of the way the electricity grid works. When there is unpredictable demand on the grid, fossil fuels are used to meet it. Keyword: Marginal carbon emissions

Better ways:

  • reduce the amount of demand (increase your energy efficiency 😀)
  • be grid-aware: schedule your workloads for times when there is less demand in the grid (sadly, at the moment we don't have the required data for it 🥲)
  • produce renewable energies yourself (if you can 😉)

Brief History of the Discussion Around Carbon-Aware Computing

Strategies

There are mainly three strategies:

Note: Time Shifting and Demand Shaping are also possible with physical systems, Location Shifting not, because they are typically fixed in place. In contrast, the operation of software can be easily moved to other regions.

Location Shifting / Spatial Shifting / Relocation

Shift computing tasks to a different data center in a region that currently has more renewable energy available.

Ideas:

Papers:

Problems of location shifting (Adrian Cockcroft)

  1. if you stop using computers in a specific data center, they are still turned on and using power
  2. regions do demand based capacity planning → the cloud provider buys more computers (more scope 2 and 3 emissions)
  3. more network traffic, which increases capacity demand for switches and undersea fibers

Source: Adrian Cockcroft – Don’t follow the sun

What to do instead?

Don’t follow the sun: Scheduling compute workloads to chase green energy can be counter-productive | by adrian cockcroft | Apr, 2023 | Medium ⤴️

I suggest that the best policy is to optimize your workloads so that they can run on fewer more highly utilized instances, minimize your total footprint in Asia where possible, and to use the spot market price as a guide for when to run workloads.

Problems of location shifting (Laurent Devernay Satyagraha)

I consider carbon-aware code as "part of the problem" only if it is considered as THE solution

In the end, carbon-aware code might just be transferring impacts (and obfuscating it because of the focus on carbon) when the priority should be sobriety. Keep in mind that most of the environmental impacts are decided during the design phase.
Laurent Devernay Satyagraha on LinkedIn

Reply by Asim Hussain:

Even in the most extremely optimistic use cases carbon aware computing can help us reach max 10% reduction in emissions. But that reduction comes at an very low investment compared to any other solution.

Time Shifting / Temporal Shifting

Shift computing tasks to a later time. For example run batch processes on times when there is "enough" green energy available and there are computing resources left.

Load peaks in the grid should be avoided, since the additional demand is covered by fossil fuels or energy storage systems for every load peak in the grid.
Therefore don't schedule cron jobs at the full hour, since other processes are often scheduled for the full hours.

Examples:

Method is also used in the physical world:

Papers:

Demand Shaping

The approach is also known as "demand responsive" design.
The aim is to shift demand towards more environmentally friendly behaviour, in line with carbon intensity.
Can be also helpful for peak-shaving.

Examples:

Demand shaping strategies can be visible or invisible to the users.

Real-world examples applying demand shaping:

How?

Carbon-Aware Website

Carbon-Aware Kubernetes

Carbon-Aware Business Process Management

Tools / APIs

Carbon Aware SDK

Grid Intensity CLI

carbon-aware-computing.com (created by Aydin Mir Mohammadi)

Carbon Aware API

Carbon-aware products

Xbox update routine

Being carbon aware means reducing carbon footprint by optimizing updates and downloads to run at a time when the console can use the most renewable energy. Windows Update became carbon aware last year for Windows 11 PCs, and now Xbox consoles are also becoming carbon aware.
Xbox Is Now the First Carbon Aware Console, Update Rolling Out to Everyone Soon - Xbox Wire

iOS Clean Energy Charging

When Clean Energy Charging is enabled and you connect your iPhone to a charger, your iPhone gets a forecast of the carbon emissions in your local energy grid and uses it to charge your iPhone during times of cleaner energy production.
Use Clean Energy Charging on your iPhone - Apple Support

Windows Update

Starting with Windows 11, version 22H2, Windows Update is now carbon aware, making it easier for your devices to reduce carbon emissions. When devices are plugged in, turned on, connected to the internet and regional carbon intensity data is available, Windows Update will schedule installations at specific times of the day (when doing so may result in lower-carbon emissions because a higher proportion of electricity is coming from lower-carbon sources on the electric grid).
Windows Update is now carbon aware - Microsoft Support

Google Cloud

Our data centers now work harder when the sun shines and wind blows

Using location to reduce our computing carbon footprint

🔗 References

Podcast episode by Environment Variables: From Carbon Aware to Carbon Intelligent

Blog - Demand Shifting and Shaping