Repository navigation
Distributed Inference Testbed 1.0.0
·
19 commits
to main
since this release
First release of the testbed described in Chapter 3 and Appendix B of the author's PhD thesis (Athens University of Economics and Business, 2026). It continues the earlier repository DNN-Partitioning-and-Offloading-Testbed (ACM MobiHoc 2024 demo), rewritten so that the code matches the thesis.
Contents
- Configuration:
config.yamlwithTESTBED_*overrides,nodes.jsontopology with management and data-plane addresses, JSON Schemas. - Device-side tools: load generator (Chapter 3 regimes, Chapter 4 process model), tc-netem shaping (delay, variation, jitter, loss, rate cap, per destination), cpufreq and cgroups v2 heterogeneity, 1 Hz resource monitor, INA260 power monitor with energy metrics, ping latency, iperf3 throughput.
- Models and profiling: AlexNet (the 11 stages of Chapter 4), VGG-16, ResNet-50, the GRU QoE predictor (TensorFlow); GPT-2 and TinyLlama with per-head, projection and FFN timing through forward hooks (PyTorch).
- Partitioned inference: edge-server service with Round-Robin and Shortest-Job-First scheduling; device client with local, transmission and remote phase timing.
- Aggregation, partition feasibility, the Chapter 4 delay model and the greedy, exhaustive and trend-based search (
delay_optimizer.py). - Orchestration: versioned, replayable scenarios with sweeps; the experiment pipeline with a journal that undoes every change at teardown; coordinated start; run metadata;
run_full_benchmarking.sh; local mode. - The Neural Network Architecture Partitioning (NNPM) manager: Leaflet map with three-ping reachability probes, click-to-add nodes, per-pair links with the distance-to-latency rule, Create Scenario, Benchmarking and Optimise dialogs, live terminal, results browser.
- HeadSplit as an optional external LLM runtime at a pinned commit.
- Provisioning: first-boot image, edge server (access point, DHCP and DNS, NTP, mirror and NNPM services), devices over SSH from a versioned package mirror.
- Documentation: architecture, installation, setup guide, NNPM user guide, scenario and results references, module reference, HeadSplit integration, hardware validation checklist.
Verification: 287 fast tests and 11 real-model tests, ruff, mypy --strict, shellcheck; every component runs without hardware (local mode, dry runs, fakes). The physical confirmations are listed in docs/hardware_validation_checklist.md.