Code Monkey home page Code Monkey logo

codecarbon's Introduction

banner

Estimate and track carbon emissions from your computer, quantify and analyze their impact.

Documentation


DOI Downloads

About CodeCarbon πŸ’‘

CodeCarbon started with a quite simple question:

What is the carbon emission impact of my computer program? 🀷

We found some global data like "computing currently represents roughly 0.5% of the world’s energy consumption" but nothing on our individual/organisation level impact.

At CodeCarbon, we believe, along with Niels Bohr, that "Nothing exists until it is measured". So we found a way to estimate how much CO2 we produce while running our code.

How?

We created a Python package that estimates your hardware electricity power consumption (GPU + CPU + RAM) and we apply to it the carbon intensity of the region where the computing is done.

calculation Summary

We explain more about this calculation in the Methodology section of the documentation.

Our hope is that this package will be used widely for estimating the carbon footprint of computing, and for establishing best practices with regards to the disclosure and reduction of this footprint.

So ready to "change the world one run at a time"? Let's start with a very quick set up.

Quickstart πŸš€

Installation πŸ”§

From PyPI repository

pip install codecarbon

From Conda repository

conda install -c conda-forge codecarbon

To see more installation options please refer to the documentation: Installation

Start to estimate your impact πŸ“

To get an experiment_id enter:

! codecarbon init

You can now store it in a .codecarbon.config at the root of your project

[codecarbon]
log_level = DEBUG
save_to_api = True
experiment_id = 2bcbcbb8-850d-4692-af0d-76f6f36d79b2 #the experiment_id you get with init

Now you have 2 main options:

Monitoring your machine πŸ’»

In your command prompt use: codecarbon monitor The package will track your emissions independently from your code.

In your Python code 🐍

from codecarbon import track_emissions
@track_emissions()
def your_function_to_track():
  # your code

The package will track the emissions generated by the execution of your function.

There is other ways to use codecarbon package, please refer to the documentation to learn more about it: Usage

Visualize πŸ“Š

You can now visualize your experiment emissions on the dashboard. dashboard

Note that for now, all emissions data send to codecarbon API are public.

Hope you enjoy your first steps monitoring your carbon computing impact! Thanks to the incredible codecarbon community πŸ’ͺ🏼 a lot more options are available using codecarbon including:

  • offline mode
  • cloud mode
  • comet integration...

Please explore the Documentation to learn about it If ever what your are looking for is not yet implemented, let us know through the issues and even better become one of our πŸ¦ΈπŸΌβ€β™€οΈπŸ¦ΈπŸΌβ€β™‚οΈ contributors! more info πŸ‘‡πŸΌ

Contributing 🀝

We are hoping that the open-source community will help us edit the code and make it better!

You are welcome to open issues, even suggest solutions and better still contribute the fix/improvement! We can guide you if you're not sure where to start but want to help us out πŸ₯‡

In order to contribute a change to our code base, please submit a pull request (PR) via GitHub and someone from our team will go over it and accept it.

Check out our contribution guidelines ↗️

Contact @vict0rsch to be added to our slack workspace if you want to contribute regularly!

Contact πŸ“

Maintainers are @vict0rsch @benoit-cty and @SaboniAmine. Codecarbon is developed by volunteers from Mila and the DataForGoodFR community alongside donated professional time of engineers at Comet.ml and BCG GAMMA.

codecarbon's People

Contributors

acatovic avatar acruve15 avatar adijo avatar alencon avatar alexisbogroff avatar benoit-cty avatar domalexrod avatar dsblank avatar edabati avatar goyal-kamal avatar h-sdl avatar inimaz avatar jl-datascientist avatar jonlikesplants avatar kngoyal avatar liamconnell avatar lothiraldan avatar luisblanche avatar marioncoutarel avatar mathilde-leval avatar minervabooks avatar mstechly avatar ncarkaci avatar nikolaskaris avatar ouminasara avatar qinganzhao avatar sabamine avatar saboniamine avatar vict0rsch avatar wzziyao avatar

Watchers

 avatar

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.