How huongdm1896/fede-ator works
This repository is a Grid'5000 experiment harness for measuring energy use during Flower federated-learning runs. The main workflow configures hosts and an experiment, optionally runs a campaign across instances, applies CPU/GPU frequency controls while monitoring power, launches the Flower server and clients remotely, and records experiment and training logs. The example Flower application covers local data partitioning, client training/evaluation, and server aggregation. Some measurement behavior is delegated to the expetator dependency; unsampled implementation details are not inferred.
Main entry points: measure_instance.py Instance measurement · config_instances.json Instance configs · run_flwr.py Flower launcher · server_1.py Flower server
Components 17
Host Setup
- Host list
Run/nodelist - IP collection
Run/collect_ip.py - Instance configs
Run/config_instances.json
Experiment Measurement
- Campaign runner
Run/measure_campaign.py - Instance measurement
Run/measure_instance.py - Energy monitors
- DVFS controls
Run/custom_gpuclock.py - Measurement logs
Distributed Execution
- Flower launcher
Run/run_flwr.py - Remote cleanup
Run/kill.py
Federated Learning
- Flower server
Flower_v1/server_1.py - Flower clients
Flower_v1/client_1.py - Local datasets
- Training results
Other components
- Experimenter
- Grid'5000 nodes
- Grid energy service
Connections 27
- Experimenter → IP collection: resolves hosts
- Host list → IP collection: provides hosts
- IP collection → Instance configs: writes addresses
- Experimenter → Campaign runner: starts campaign
- Experimenter → Instance measurement: starts instance
- Campaign runner → Instance configs: reads instances
- Campaign runner → Instance measurement: runs each instance
- Instance measurement → Instance configs: reads settings
- Instance measurement → Energy monitors: configures monitors
- Instance measurement → DVFS controls: configures leverage
- Instance measurement → Flower launcher: runs locally
- Instance measurement → Measurement logs: records run
- Energy monitors → Grid energy service: collects power
- Energy monitors → Measurement logs: records metrics
- DVFS controls → Grid'5000 nodes: sets clock
- Flower launcher → Instance configs: reads launch settings
- Flower launcher → Grid'5000 nodes: dispatches via oarsh
- Flower launcher → Training results: captures process output
- Grid'5000 nodes → Flower server: runs server
- Grid'5000 nodes → Flower clients: runs clients
- Flower clients → Local datasets: loads and partitions
- Flower clients → Flower server: sends updates
- Flower server → Flower clients: dispatches rounds
- Flower server → Training results: writes metrics
- Experimenter → Remote cleanup: requests cleanup
- Remote cleanup → Instance configs: reads host addresses
- Remote cleanup → Grid'5000 nodes: terminates processes