Experiment Operations
The committed repository does not include a Python experiment runner module. Experiments are run with Flower CLI commands, the cluster deployment scripts, and the evaluation tools under experiments/tools/.
Local simulation
Use the default tiny correctness config:
flwr run . local-simulation --stream
Override the run config explicitly when needed:
flwr run . local-simulation --stream --run-config \
'simulation=true num-server-rounds=100 config_path="experiments/correctness/tiny_even/configs"'
Local deployment
Start one SuperLink, one SuperNode per client, then run:
flwr run . local-deployment --stream
pyproject.toml must point local-deployment at the SuperLink Exec API:
[tool.flwr.federations.local-deployment]
address = "127.0.0.1:9093"
insecure = true
options.num-supernodes = 2
Cluster deployment
For three-node runs, use the scripts under cluster_deployment/scripts/ and the guide at cluster_deployment/docs/CLUSTER_USER_GUIDE.md. The cluster scripts wrap setup, data verification, SuperLink/SuperNode startup, run execution, status checks, and log collection.
Post-run evaluation
Generate a centralized baseline:
python experiments/tools/generate_baseline.py \
experiments/correctness/tiny_even/config.yaml
Compare federated outputs with the baseline:
python experiments/tools/evaluation/evaluate_all.py \
experiments/correctness/tiny_even/results_2 \
--baseline experiments/correctness/tiny_even/data/tiny/centralized_baseline \
--king
Collect monitoring outputs:
python experiments/tools/collect_run_metrics.py \
experiments/correctness/tiny_even/results_2
Success indicators
- SuperLink starts the Fleet API.
- SuperNodes register with the federation.
flwr runstarts a run successfully.- Server logs are written under the configured
server/logs/directory. - The pipeline progresses through key exchange, sync, QC, KING, and LR stages.