GreenFedEnv: Code and experimental results for energy-aware federated learning under communication and privacy constraints for IoT sensing

Published: 3 August 2026| Version 1 | DOI: 10.17632/ggs4393zwj.1
Contributor:
Arulmurugan Ramu

Description

Reproducibility package for the article "Energy-Aware Federated Learning under Communication and Privacy Constraints for IoT Sensing." It contains the complete source code of the GreenFedEnv federated-learning framework (top-k sparsification with error feedback, stochastic quantization, straggler-tolerant partial participation, client-level differential privacy, and a grid-intensity-independent carbon-accounting model), the run configuration, the pre-registered experiment plan, and every numerical result behind the tables and figures in the article: per-seed forecasting and anomaly-detection measurements, communication/energy/carbon accounting, and sweeps over compression density, client participation, the privacy budget, and federation size, each over five seeds with Holm-corrected significance tests against FedAvg. Training curves for the convergence plots are included as JSON. The two input benchmark datasets (Beijing Multi-Site Air-Quality and UCI ElectricityLoadDiagrams20112014) are not redistributed here; they are obtained from the UCI Machine Learning Repository as described in data/README.md, and the simulated sensor network is generated deterministically by the code. Python 3.11, CPU-only; see requirements.txt and REPRODUCE.md for exact commands.

Files

Steps to reproduce

1. pip install -r requirements.txt (Python 3.11, CPU-only). 2. Download the two datasets into data/raw/ as described in data/README.md (Beijing Multi-Site Air-Quality, UCI dataset 501, https://doi.org/10.24432/C5RK5G; ElectricityLoadDiagrams20112014, UCI dataset 321, https://doi.org/10.24432/C58C86). The simulated network needs no download. 3. To re-derive tables/figures from the shipped measurements: python scripts/aggregate.py results/raw --baseline fedavg --metric test_rmse --out results/summary ; python scripts/make_numbers.py ; python scripts/make_figures.py 4. To re-run all experiments end-to-end (~2 h on 2 CPU threads): python scripts/run_sweep.py (resumable). Full detail in REPRODUCE.md. Determinism: results reproduce within the reported standard deviation across 5 seeds, not bit-for-bit (CPU BLAS reductions).

Categories

Energy Engineering, Machine Learning, Green Communication

Licence