  Swarms of autonomous devices are increasing in ubiquity and size, making the
need for rethinking their hardware-software system stack critical.
  We present HiveMind, the first swarm coordination platform that enables
programmable execution of complex task workflows between cloud and edge
resources in a performant and scalable manner. HiveMind is a software-hardware
platform that includes a domain-specific language to simplify programmability
of cloud-edge applications, a program synthesis tool to automatically explore
task placement strategies, a centralized controller that leverages serverless
computing to elastically scale cloud resources, and a reconfigurable hardware
acceleration fabric for network and remote memory accesses.
  We design and build the full end-to-end HiveMind system on two real edge
swarms comprised of drones and robotic cars. We quantify the opportunities and
challenges serverless introduces to edge applications, as well as the
trade-offs between centralized and distributed coordination. We show that
HiveMind achieves significantly better performance predictability and battery
efficiency compared to existing centralized and decentralized platforms, while
also incurring lower network traffic. Using both real systems and a validated
simulator we show that HiveMind can scale to thousands of edge devices without
sacrificing performance or efficiency, demonstrating that centralized platforms
can be both scalable and performant.
