mlco2/codecarbon

Capture measurements in CSV based on time intervals

Aberta

#467 aberto em 30 de out. de 2023

 (6 comentários) (0 reação) (0 responsável)Python (306 forks)auto 404
P3enhancementgood first issue

Métricas do repositório

Stars
 (1.885 estrelas)
Métricas de merge de PR
 (Métricas PR pendentes)

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()

Guia do colaborador