Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Case: Measuring the total carbon emissions for Windows #21

Closed
jawache opened this issue Aug 1, 2021 · 10 comments
Closed

Use Case: Measuring the total carbon emissions for Windows #21

jawache opened this issue Aug 1, 2021 · 10 comments
Assignees
Labels
action-item Things that require an action to be taken help-wanted Extra attention is needed medium Medium Priority software-boundaries Software Boundaries

Comments

@jawache
Copy link
Contributor

jawache commented Aug 1, 2021

Getting a little bit more concrete here, I think Windows is an excellent use case to explore. Windows really shows the weakness in the GHG attributional model of emissions calculation.

In the GHG attributional model, the carbon emissions of Windows for Microsoft are JUST the carbon emissions from running Windows at Microsoft. I.e. we only count the electricity we bought to run Windows for Microsoft employees. However, Windows is run on 1 billion devices worldwide. Each individual company that uses Windows calculates its own carbon emissions from its own use of Windows. If we add them all up together we get the carbon emissions of Windows for the whole world.

Screenshot 2021-08-01 at 18 53 45

But because the metric we use is the GHG attributional total for Microsoft, the Windows team is not as incentivized as it could be. If they did some work to make WIndows more energy-efficient it would benefit the whole world and every company that uses Windows, but it would only count a little bit towards Microsoft meeting its own carbon emissions targets.

In the SCI contributional model, Windows would calculate the total carbon emissions of all of Windows, worldwide, regardless of which organization is using it and who bought the electricity to run Windows. That way the Windows team is incentivized to do a lot more to improve the energy efficiency of Windows.

Screenshot 2021-08-01 at 18 53 52

NOTE: The Windows team at MSFT doesn't only use the GHG attributional model to measure its carbon emissions for this very reason.

Getting to specifics.

The carbon cost of Windows = Global Energy Usage * Carbon Intensity + Embodied Carbon

Global Energy Usage

  • I would count this as the energy consumption of JUST the OS, since the OS developers are going to want to know how their changes impacted the total number.
  • If windows become more energy-efficient, this number goes down.

Carbon Intensity

  • This number needs to be sensitive to carbon awareness.
  • If the Windows team made Windows do more when there are more renewables available on the grid, then this number should go down.
  • E.g. if the Windows team timeshifted charging the laptop to only,

Embodied Carbon

  • This is the embodied carbon not of the device Windows is running on, but on the services used to support Windows.
  • E.g. the Windows org has a large set of services that support Windows, APIs, Updates. This is the embodied carbon of that.
  • Making windows hardware efficient, using fewer hardware resources to do the same job, would reduce this number.

Interesting thoughts:

  • For SaSS products, the embodied carbon will be higher, since you control all the hardware that is using your software.
  • For open-source software or installed software like Windows, the energy cost and carbon intensity will be the primary factors
  • If you are an open-source piece of software, how would you even calculate your total energy consumption? Windows knows it only because of deep investment into telemetry, maybe some of this will have to be modeled?
@atg-abhishek atg-abhishek added the help-wanted Extra attention is needed label Aug 5, 2021
@atg-abhishek
Copy link
Member

This is fantastic @jawache - thank you for putting this together. We definitely have something concrete to walk through. I know you're not going to be able to make the meeting today so I'd love to save this for next week's meeting when you're back so that you can answer questions around this as we discuss this.

@buchananwp something like this would be ideal for discussing from an AzureML perspective.

@dtoakley from your work at TW, are there other case studies that you could suggest that will help raise some of the questions like @jawache has towards the end?

@will-iamalpine
Copy link
Contributor

Scott Roscoff from Windows is already doing work in this space, and has agreed to join us. Sending an email to @seanmcilroy29 @dtoakley @atg-abhishek

@atg-abhishek
Copy link
Member

Fantastic @buchananwp thank you for making it happen! @jawache should we then defer discussion of this issue till Scott is able to join the call as well? (@buchananwp do we know if he'll be joining today or next week?)

@atg-abhishek atg-abhishek added the action-item Things that require an action to be taken label Aug 12, 2021
@jawache
Copy link
Contributor Author

jawache commented Aug 12, 2021

Thanks @buchananwp would be interested to get his input.

I like the idea of deciding on our initial set of characteristics and then running through a few different uses cases, the characteristics are the guard rails in the brainstorming, make sure we don't go into a direction that breaks one of our characteristics.

  • Windows
  • The open-source TensorFlow framework
  • A "TensorFlow As A Service" cloud app
  • A web app
  • A mobile app

@Sealjay
Copy link
Contributor

Sealjay commented Aug 12, 2021

Might be interesting to add DAPR or kind of multi-cloud abstraction - I can see those layers adding overhead, but also an agnostic framework for instrumenting for telemetry.

@atg-abhishek
Copy link
Member

Asim: Some things might not include hardware, in some places hardware might not be considered at all.

Abhishek: The actions taken by the people designing TF would be different from those who are using TF as a service.

Will: it’s a taxonomy of decisions, each with a different sphere of influence

Sara: you also want the developers who are using the services to use them smartly where you might have made the API to be green but if people are using it in a way that makes a lot of calls then that negates that green gain

Asim: what we need to think about is if taking the action reduces the carbon emissions

Vaughn: if we propose numbers that are software-driven then that might be hard for people to act in; there might be different numbers for different parts of the software solution

Henry: if we're measuring something and we can't take an action against it, then there is no point of the measurement either
Tying the measurement to action would be what is useful

Dan: not being able to take an action might be a political thing

Asim: software, architecture, or any other choice. actions fall into : (1) use less energy (2) use less hardware (3) using the energy more intelligently (carbon-aware)
if there was a regulation - would the SCI help to reduce the carbon emissions?

Vaughn: coming up with a number (an index) - lower number is better would be the good way to go ; it needs to be measured in a consistent way

Asim: the number doesn't need to be accurate, as long as it is directional that might be enough
standard of measure stops becoming useful when you have an action that you want to take but it isn't captured in the standard - as an example this is the problem with the GHG protocol
we should then utilize the use cases to see what are the actions that we know wholeheartedly better are actually reflected in the standard

@atg-abhishek
Copy link
Member

Taylor: people understand the negative consequences of 'emissions' more than 'kWh'
Abhishek: this might be very useful from a human-understandability to make more sense to the people

@Sealjay
Copy link
Contributor

Sealjay commented Aug 12, 2021

Also mentioned - we may want to talk about the actions that are possible; and potentially support those in a future version - but to my mind, anything measured as a KPI still drives change. What is measured drives behaviour change. That’s not to say actions shouldn’t be recommended, but I think the measuring in and of itself is useful - and still has a point.

@atg-abhishek
Copy link
Member

What is the next step that we want to take here @jawache ? Should we continue to seek some more details here and then revisit this when we reach a bit more concreteness in the SCI? I think the discussions here have already helped to shape a bit the SCI and the direction that it is taking so this has been very useful!!

@jawache
Copy link
Contributor Author

jawache commented Aug 19, 2021

I'm going to propose in today's meeting that we create a rubric for evaluating submissions. I don't think we need to go overboard just a selection of uniquely different application domains. Just to keep us honest, something that works for the ML world might make no sense in the Windows world, the Web world. Let's just run through a list together and use it as an evaluation tool.

Later on I think we'll need to work through some rough examples for each application domain, there is space in the spec at the bottom to put that stuff.

@atg-abhishek atg-abhishek added problem-definition Problem definition requirements-constraints Requirements and Constraints software-boundaries Software Boundaries medium Medium Priority and removed problem-definition Problem definition requirements-constraints Requirements and Constraints labels Aug 21, 2021
@Green-Software-Foundation Green-Software-Foundation locked and limited conversation to collaborators Aug 26, 2021

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
action-item Things that require an action to be taken help-wanted Extra attention is needed medium Medium Priority software-boundaries Software Boundaries
Projects
None yet
Development

No branches or pull requests

4 participants