Skip to content

EcoTrace Academic Benchmark Suite

Scientific, reproducible green computing benchmarks evaluating energy efficiency, operational carbon emissions ($gCO_2eq$), and hardware power scaling across diverse computing workloads.


Benchmark Index & Studies

Study Title Category Focus Runner
01 Pandas vs. Polars Data Engineering Vectorization, Arrow format, Race-to-Sleep python pandas_vs_polars.py
02 PyTorch vs. TensorFlow Machine Learning CNN Training on CIFAR-10, Carbon per Accuracy Point python 02_ml_training_frameworks.py
03 Sorting Algorithm Complexity Computer Science $O(n \log n)$ vs $O(n^2)$ physical energy scaling python 03_sorting_algorithms.py
04 Web Framework Efficiency Cloud Systems Flask vs FastAPI request carbon cost under load python 04_web_frameworks.py
05 LLM Inference Scaling Generative AI Per-token energy cost across GPT-2 parameter tiers python 05_llm_inference.py
06 Cross-Region Grid Variability Cloud Architecture Up to 70x spatial carbon difference across 15 countries python 06_regional_carbon.py
07 Accuracy vs. RAPL Energy Metrology Model-vs-hardware validation (MAPE, MAE, R²) — Linux/RAPL for ground truth, synthetic fallback elsewhere python validation/accuracy_vs_rapl.py

Framework Architecture (benchmarks/framework/)

All studies in this suite leverage our reusable benchmarking framework: - BenchmarkRunner: Standardized harness managing warm-up iterations, cooldown intervals, and automated EcoTrace telemetry collection. - BenchmarkStatistics: Statistical aggregator providing 95% confidence intervals, IQR outlier rejection, and Mann-Whitney U hypothesis significance tests ($p < 0.05$). - EnvironmentSnapshot: Captures hardware fingerprints (CPU, GPU, RAM, power state) and package dependency trees to ensure scientific reproducibility.


Quickstart

# 1. Install benchmark dependencies
pip install -r benchmarks/requirements.txt

# 2. Execute any benchmark
python benchmarks/03_sorting_algorithms.py

# 3. Results are saved to benchmarks/results/<study>.json

# 4. (Optional) Regenerate the article from the latest results
python benchmarks/report_generator.py 03
# Or regenerate all registered studies at once:
python benchmarks/report_generator.py

The report generator reads benchmarks/results/*.json and rewrites the corresponding article in benchmarks/articles/*.md. Run it after every benchmark to keep the published numbers in sync with the actual measurements.


Citation

If you use EcoTrace or these benchmarks in academic research, please cite:

@software{ozkal2026ecotrace,
  author = {Ozkal, Emre},
  title = {EcoTrace: High-Precision Energy and Emissions Instrumentation for Python},
  year = {2026},
  url = {https://github.com/Zwony/ecotrace},
  version = {1.6.0}
}