GithubHelp home page GithubHelp logo

taylorprewitt / carbon-awareapi Goto Github PK

View Code? Open in Web Editor NEW
21.0 6.0 8.0 33.37 MB

Increasing carbon efficiency and footprint awareness for software applications.

License: GNU General Public License v3.0

Python 48.57% CSS 1.26% HTML 41.20% JavaScript 8.98%
green-software carbon-emissions carbon-footprint sustainable-software

carbon-awareapi's Introduction

Carbon Aware API

Draft, Project In Progress

Navigation

  1. Overview
  2. Case Studies
  3. API Architecture
  4. Methodology
  5. Sample User Interface

Terminology

Term Definition
Carbon Intensity Carbon emitted per energy unit.
Grid-Based Carbon Intensity All entities who operate on a shared electrical grid, share a common carbon intensity.
Marginal Carbon Intensity The carbon intensity of the marginal power plant that supplies power when additional load added to the grid.
Carbon Aware Adjusted behavior in response to the carbon intensity of consumption.
Carbon Delta The difference in emissions between carbon aware and unaware actions.
Carbon Counterfactual The carbon delta had the carbon aware action been different.
Demand Shifting Selectively changing the time/location of a compute's execution, to a time/location where the energy demands are met by cleaner energy production, resulting in a lower grid-based carbon intensity.
Operational Emissions Emissions explained by the energy consumption and grid-based carbon intensity measurement during times of operation.
Embodied Emissions Carbon emissions resultant of creating the hardware, structural systems, maintanence, etc. (e.g. constructing a GPU or datacenter).

Other definitions and methods for the Carbon Awareness found at: Green Software Foundation



Banner

Overview

To enable organizations to make smart decisions about their environmental impact and carbon footprint, we have created the Carbon Aware API to minimize the operational emissions of computational workflows. A few key features of the API are:

  • Utilizes marginal carbon emission measurements from WattTime to map carbon intensity rates to data centers.
  • Generates a retrospective carbon emission analysis
  • Provides forecasted demand shifting suggestions
  • Supplies regional carbon intensity information over different scopes
  • Hosts a green region picker for workspace configuration.

Marginal Carbon Emissions: This grid-responsive metric with finer granularity than average emissions, allows for seasonality/diurnal trends captured in demand shifting (source).

Retrospective Analysis: Time series evaluation to assess the carbon emissions for a given energy profile. Also provides counterfactual analysis to expose the potential emissions of if the run had been shifted.

Demand Shifting Scheduler: Recommends data center and/or time which would yield a less carbon intensive run.

  • Temporal: Identifies the window of minimum carbon intensity for a specified run duration within a chosen region from a 24-hour forecast.
  • Geographic: Finds the region with the current lowest average carbon intensity for an immediate run of a specified duration. Can filters available regions by available SKU and migration laws for workspaces with protected data.

Regional Carbon Intensity: Provides the carbon intensity for each data center supported by a WattTime-tracked balancing authority. The possible scopes are historic intensities (time series for prior 24-hours, week, and month), real-time marginal intensity, and forecast (mean intensity for upcoming user-defined window).

Green Region Picker: Recommends the a data center to host a workspace based on expressed needs such as carbon efficiency, price, and latency.

For more information, please see the full tool description: Carbon Aware API Details


Case Studies

Carbon intensity data for case studies provided by: WattTime

Carbon Optimized Demand Shifting at Scale

September 2021

Details: Geographically and temporally shifting compute instances at scale would reduce carbon by X%

Results: Organizations can reduce their operational emissions by 48% by geographically shifting and 12% by temporally shifting ML computes.

For more information and detailed results, please see the full case study: Carbon Optimized Demand Shifting at Scale


Carbon Segmented Cloud Computes

October 2021

Details: Execute and progress cloud computes greater than 24 hours in duration during periods of low emission to reduce the carbon footprint by Y%

Results: 48-hour ML runs saw a mean of 0.5% change using standard temporal shifting, but controlling progression based on regional carbon intesity thresholds reduced operational emissions by 10%

For more information and detailed results, please see the full case study: Carbon Segmented Cloud Computes

carbon-awareapi's People

Contributors

divyank68 avatar muskangoel avatar nam14d avatar nikhithamusthyala avatar taylorprewitt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

carbon-awareapi's Issues

Swagger

Implement automated documentation generation for the Swagger, preference is as YAML.

System

Implement system testing on the Carbon Aware API

Integration

Implement integration testing on the Carbon Aware API

Impact of API

Build a method for carbon counterfactual tracking of scheduling outcomes

API usage

Build method to track usage of individual endpoints. Total usage and outcome of use.

Session Issues

Address endpoints with session issues and dependencies to prevent errors

Classification

Organize functions/processes and structure based on OSS standards

Readthedocs

Implement automated documentation generation for readme docs.

Tool Validation

evaluate the carbon API and its ability to be used as a smart scheduler for each shifting type

Unit

Implement unit testing on the Carbon Aware API

Hosting CSP agnostic

Expand tool beyond Azure data centers to accept inputs for other CSP datacenters

Refactor Endpoints

Refactor the functions/code base to increase robustness, decrease error response frequency, decrease latency, minimize code

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.