mlco2/codecarbon

Capture measurements in CSV based on time intervals

Open

#467 opened on Oct 30, 2023

View on GitHub
 (6 comments) (0 reactions) (0 assignees)Python (306 forks)auto 404
P3enhancementgood first issue

Repository metrics

Stars
 (1,885 stars)
PR merge metrics
 (PR metrics pending)

Description

  • CodeCarbon version: 2.2.2
  • Python version: 3.11.5
  • Operating System: Linux-6.2.0-35-generic-x86_64-with-glibc2.35

Description

I have implemented a method that enables the capture and storage of consumption logs (CSV format) in parallel every second during the execution of my algorithm. Nevertheless, I would be interested in exploring whether there are more efficient alternatives from a technical or academic standpoint to accomplish this process. Below, I am providing the code of my current solution for review and suggestions.

What I Did

from codecarbon import EmissionsTracker
import threading

pthread=1
def fthread():
    while pthread:
        tracker.flush()
        time.sleep(1)

# Creates an instance of a thread and passes the function is executed.
eng_measure = threading.Thread(target=fthread)

# Training 
tracker = EmissionsTracker(project_name="Test",tracking_mode="machine")
tracker.start()
eng_measure.start()
try:
    # code
finally:
    pthread = 0
    eng_measure.join()
    emissions = tracker.stop()

Contributor guide