  Edge computing has become a promising computing paradigm for building IoT
(Internet of Things) applications, particularly for applications with specific
constraints such as latency or privacy requirements. Due to resource
constraints at the edge, it is important to efficiently utilize all available
computing resources to satisfy these constraints. A key challenge in utilizing
these computing resources is the scheduling of different computing tasks in a
dynamically varying, highly hybrid computing environment. This paper described
the design, implementation, and evaluation of a distributed scheduler for the
edge that constantly monitors the current state of the computing infrastructure
and dynamically schedules various computing tasks to ensure that all
application constraints are met. This scheduler has been extensively evaluated
with real-world AI applications under different scenarios and demonstrates that
it outperforms current scheduling approaches in satisfying various application
constraints.
