Skip to main content

emission tracking library

Project description

PyPI Downloads PyPI all Downloads

PyPI - Downloads PyPI - Downloads telegram support

Eco2AI

About Eco2AI

The Eco2AI is a python library for CO2 emission tracking. It monitors energy consumption of CPU & GPU devices and estimates equivalent carbon emissions taking into account the regional emission coefficient. The Eco2AI is applicable to all python scripts and all you need is to add the couple of strings to your code. All emissions data and information about your devices are recorded in a local file.

Every single run of Tracker() accompanies by a session description added to the log file, including the following elements:

  • project_name
  • experiment_description
  • start_time
  • duration(s)
  • power_consumption(kWTh)
  • CO2_emissions(kg)
  • CPU_name
  • GPU_name
  • OS
  • country

Installation

To install the eco2ai library, run the following command:

pip install eco2ai

Use examples

Example usage eco2ai Open In Collab

The eco2ai interface is quite simple. Here is the simplest usage example:

import eco2ai

tracker = eco2ai.Tracker(project_name="YourProjectName", experiment_description="training the <your model> model")

tracker.start()

<your gpu &(or) cpu calculations>

tracker.stop()

The eco2ai also supports decorators. As soon as the decorated function is executed, the information about the emissions will be written to the emission.csv file:

from eco2ai import track

@track
def train_func(model, dataset, optimizer, epochs):
    ...

train_func(your_model, your_dataset, your_optimizer, your_epochs)

For your convenience, every time you instantiate the Tracker object with your custom parameters, these settings will be saved until the library is deleted. Eeach new tracker will be created with your custom settings (if you create a tracker with new parameters, they will be saved instead of the old ones). For example:

import eco2ai

tracker = eco2ai.Tracker(
    project_name="YourProjectName", 
    experiment_description="training <your model> model",
    file_name="emission.csv"
    )

tracker.start()
<your gpu &(or) cpu calculations>
tracker.stop()

...

# now, we want to create a new tracker for new calculations
tracker = eco2ai.Tracker()
# now, it's equivalent to:
# tracker = eco2ai.Tracker(
#     project_name="YourProjectName", 
#     experiment_description="training the <your model> model",
#     file_name="emission.csv"
# )
tracker.start()
<your gpu &(or) cpu calculations>
tracker.stop()

You can also set parameters using the set_params() function, as in the example below:

from eco2ai import set_params, Tracker

set_params(
    project_name="My_default_project_name",
    experiment_description="We trained...",
    file_name="my_emission_file.csv"
)

tracker = Tracker()
# now, it's equivelent to:
# tracker = Tracker(
#     project_name="My_default_project_name",
#     experiment_description="We trained...",
#     file_name="my_emission_file.csv"
# )
tracker.start()
<your code>
tracker.stop()

Important note

If for some reasons it is not possible to define country, then emission coefficient is set to 436.529kg/MWh, which is global average. Global Electricity Review

For proper calculation of gpu and cpu power consumption, you should create a "Tracker" before any gpu or CPU usage.

Create a new “Tracker” for every new calculation.

Citing Eco2AI

The Eco2AI is licensed under a Apache licence 2.0.

Please consider citing the following paper in any research manuscript using the Eco2AI library:

@article{eco2ai_lib,
    author = {Semen Budennyy*, Vladimir Lazarev, Nikita Zakharenko, Alexey Korovin, Olga Plosskaya, Denis Dimitrov, Vladimir Arkhipkin, Ivan Barsola, Ilya Egorov, Aleksandra Kosterina, Leonid Zhukov

},
    title = {eco2AI: open-source library for carbon emission tracking of machine learning models},
    year = {2022},
    journal={arXiv preprint arXiv:2207.XXXXX},
}

Feedback

If you have any problems working with our tracker, please make comments on document

In collaboration with

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eco2ai-0.2.5.tar.gz (49.3 kB view details)

Uploaded Source

Built Distribution

eco2ai-0.2.5-py2.py3-none-any.whl (48.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file eco2ai-0.2.5.tar.gz.

File metadata

  • Download URL: eco2ai-0.2.5.tar.gz
  • Upload date:
  • Size: 49.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.7 Darwin/20.4.0

File hashes

Hashes for eco2ai-0.2.5.tar.gz
Algorithm Hash digest
SHA256 a0281803ca25e8067cb3ed495aaa1773f35f7891e0245a481b0f0bbbfa92b0a0
MD5 d0bf5d1229fe1f2051f61fdc4d3e7303
BLAKE2b-256 118b8531f39c503571d8ad26051c3c2381eaadcf9d538fa77c4854bb764977df

See more details on using hashes here.

File details

Details for the file eco2ai-0.2.5-py2.py3-none-any.whl.

File metadata

  • Download URL: eco2ai-0.2.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 48.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.7 Darwin/20.4.0

File hashes

Hashes for eco2ai-0.2.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9c22dcfc704b394c48c53fdaceb7d58a46b50b5658e49cbea4e76d0ec5b857bc
MD5 624562651399ece85c1fb3f401a1276b
BLAKE2b-256 74b6063a60bc896924f45eb99eee492c18a8cb1d02bc48195a49040adf663b22

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page