Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
cd4482c
Streaming opportunity-gap experiment: mis-selection telemetry + oracl…
Jun 2, 2026
26c7cb1
Default experiment configs to time_mode=real
Jun 2, 2026
ed8f923
Wire FedDance into async_cifar10 + fix base syncfl stack for fedavg/f…
Jun 2, 2026
653ca25
Fix: REFL arms need aggr_num (OortSelector requires it)
Jun 2, 2026
8f48c88
REFL: emit selection telemetry so the mis-selection oracle can score it
Jun 2, 2026
d7f4d51
Add FedDance arms (8-arm experiment) + 2-node, 2-phase run scripts
Jun 2, 2026
d0ba839
Selector staleness audit: design doc + per-factor I_m staleness (step 1)
Jun 2, 2026
9aa10df
Staleness audit (step 2, live): log believed scoring factors per cand…
Jun 2, 2026
8302ced
Staleness audit (step 3a): shared pure scoring fns + per-candidate sc…
Jun 2, 2026
f405d22
Staleness audit (step 3b): oracle counterfactual replay + true A_m
Jun 2, 2026
7007dd1
Staleness audit (step 3c): self-relative regret in own-score units + …
Jun 2, 2026
6b63115
Per-run plot suite: PDF, config-stamped, grouped (performance/sanity/…
Jun 2, 2026
4186c50
config_stamp: infer streaming from telemetry (snapshots omit config_o…
Jun 2, 2026
979fb3c
Plot/telemetry refinements: labels, hist %, top config title, selecti…
Jun 2, 2026
cc0eaf7
Add max_runtime_s wall-clock cap (3.5h) to all experiment arms
Jun 2, 2026
638281a
Fix streaming recv_fifo active-task leak that stalled async runs
Jun 3, 2026
e6c95f6
Update stale launch tests for baseline-owned aggregator_main
Jun 3, 2026
929b811
Split node1 STREAMING batch into per-baseline YAMLs (felix, oort)
Jun 3, 2026
94d2cff
Eliminate per-round trainer overhead that inflated "compute" time
Jun 3, 2026
9ff451a
Task 3: real/sim parity hardening — seeding, determinism fix, checks,…
Jun 3, 2026
9555945
Sync sim-ordering for real/sim parity across sync baselines + doc
Jun 4, 2026
694dde9
random selector: work on sync FL too; + logical commit-sequence parit…
Jun 4, 2026
426e19a
plots: semantic participation heatmap, response-lateness CDF, aggrega…
Jun 4, 2026
8ac0d53
sync aggregator: guard channel.ends() returning None in sim mode
Jun 4, 2026
1042726
Add handoff doc: trainer overhead, real/sim parity, plots (state + ne…
Jun 4, 2026
d30fee6
real/sim parity across all 6 baselines + n300 overnight sim infra + p…
Jun 5, 2026
b2d5392
overnight scripts: portable conda activation + derive repo paths from…
Jun 5, 2026
e3af649
overrun debug: WALL_SEND_TS + MQTT lag decomposition + debug_run.sh
Jun 5, 2026
987821e
scripts: move run logs from /tmp to repo run_logs/ dir
Jun 5, 2026
fc9d17e
scripts: revert log dir back to /tmp
Jun 5, 2026
7ba0123
timing: 6-component LAG_DECOMP + TIMING_OVERRUN_AGG + wall-clock fail…
Jun 5, 2026
9e2c789
timing+cpupin+vclock: per-phase trainer timing, CPU pinning, sim cloc…
Jun 6, 2026
6fc99cf
analysis: round-2 fixes — sim_rate, sim_wall_ceiling, pinning+dynamic…
Jun 6, 2026
af3d910
longer 3h debug run
Jun 6, 2026
126d505
parity: new scripts/parity/ package + K2/K3/K4/K8/K10 clock checks
Jun 7, 2026
17dff11
cleanup: remove stale artifacts, supersede old parity scripts, trim c…
Jun 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,9 @@ scripts/plotters/old_plots/*
# Local json files (fwdllm) - populated with $USER - do not commit
/tmp_expanded_configs_*
specs/*

# Experiment run outputs (telemetry / plots / logs) — generated, not source
lib/python/examples/async_cifar10/experiments/run_*/
# Stray trainer log + local Claude Code project dir
temp_trainer.log
.claude/
13 changes: 10 additions & 3 deletions lib/python/examples/_metadata/baselines.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ baselines:
selector:
sort: refl_oort
kwargs:
aggr_num: 10 # per-round selection count (OortSelector requires it); override per experiment to match agg_goal
avail_priority: 1
blacklist_rounds: 50
pacer_step: 20
Expand Down Expand Up @@ -89,13 +90,19 @@ baselines:
feddance:
description: >-
FedDance = feddance selector (V_m * I_m * A_m with MAB exploration) +
FedAvg optimizer.
FedAvg optimizer on the base syncfl stack (main_fedavg_agg.py), which
drives the selector's on_update_received / on_round_completed hooks.
Availability comes from FedDance's own check-in predictor (not oracular).
aggr_num is the per-round selection count (override per experiment to match
agg_goal). Needs trainer use_oort_loss_fn=True (I_m) and local-accuracy
reporting (A_m), both emitted by the async_cifar10 trainer.
example:
aggregator_main: aggregator/pytorch/main_fedavg_agg.py
aggregator:
selector:
sort: feddance
kwargs:
aggr_num: 10
history_window: 50
prediction_window: 5
accuracy_window: 5
Expand All @@ -107,8 +114,8 @@ baselines:
kwargs: {}
hyperparameters:
trackTrainerAvail:
enabled: "True"
type: ORACULAR
enabled: "False"
type: "NA"
trainer:
hyperparameters:
use_oort_loss_fn: "True"
Expand Down
Loading