Skip to content

Distributed Inference Testbed 1.0.0

Choose a tag to compare

@Dimitrios-Kafetzis Dimitrios-Kafetzis released this 25 Oct 11:55
· 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.yaml with TESTBED_* overrides, nodes.json topology 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.