  Edge inference has become more widespread, as its diverse applications range
from retail to wearable technology. Clusters of networked resource-constrained
edge devices are becoming common, yet no system exists to split a DNN across
these clusters while maximizing the inference throughput of the system.
Additionally, no production-ready orchestration system exists for deploying
said models over such edge networks which adopts the robustness and scalability
of the cloud. We present an algorithm which partitions DNNs and distributes
them across a set of edge devices with the goal of minimizing the bottleneck
latency and therefore maximizing inference throughput. The system scales well
to systems of different node memory capacities and numbers of nodes, while
being node fault-tolerant. We find that we can reduce the bottleneck latency by
10x over a random algorithm and 35% over a greedy joint partitioning-placement
algorithm, although the joint-partitioning algorithm outperforms our algorithm
in most practical use-cases. Furthermore we find empirically that for the set
of representative models we tested, the algorithm produces results within 9.2%
of the optimal bottleneck latency. We then developed a standalone cluster
network emulator on which we tested configurations of up to 20 nodes and found
a steady increase in throughput and decrease in end-to-end latency as the
cluster size scales. In these tests, we observed that our system has multi-node
fault-tolerance as well as network and system IO fault-tolerance. We have
implemented our framework in open-source software that is publicly available to
the research community at https://github.com/ANRGUSC/SEIFER.
