swactor/crates
zacheryasc 5c3f742ce8 feat: data parallel mnist example (#26)
Add a data-parallel MNIST training example where swactor actors coordinate gradient averaging across workers.

- crates/swactor-dp-mnist/worker.py: add `MnistNet` MLP and `MnistWorker` actor handling `train_batch`/`update`/`evaluate`/`save_model` over a sharded MNIST split with SGD
- crates/swactor-dp-mnist/aggregator.py: add `Aggregator` actor that buffers per-worker gradients, averages them, fans out updates, then logs/evaluates on completion
- crates/swactor-dp-mnist/run_training.py: spawn the Aggregator plus two MnistWorkers (identical initial weights, disjoint shards), run 750 rounds, and poll the inbox for `log`/`done`
- crates/swactor-dp-mnist/pyproject.toml: declare torch/torchvision/numpy deps, an editable local `swactor` source, and the PyTorch CPU index
- Cargo.toml: add a `[profile.bench]` retaining debug symbols (`debug = true`, `strip = false`) for profiling

Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-02-09 14:42:25 +00:00
..
gossip-dashboard fix: gossip dashboard (#24) 2026-02-09 09:07:38 +00:00
runtime-dashboard feat: mt benchmark (#25) 2026-02-09 14:02:40 +00:00
swactor-dp-mnist feat: data parallel mnist example (#26) 2026-02-09 14:42:25 +00:00
swactor-gossip fix: gossip dashboard (#24) 2026-02-09 09:07:38 +00:00
swactor-python refactor(core): fuzz-driven runtime cleanup and api tests (#22) 2026-02-09 07:24:16 +00:00
swactor-wasm refactor: repack external bindings into their own crates (#19) 2026-02-07 17:39:02 +00:00