title: Container Scheduling on Heterogeneous Clusters using Machine Learning-based Workload Characterization
Creators: name: Raith, Philipp Alexander
Publisher: name: TU Wien
Year: 2021
Subjects: subject: edge
subject: faas
subject: function-as-a-service
subject: serverless
subject: iot
subject: docker
subject: kubernetes
subject: container
subject: orchestration
subject: scheduling
subject: machine-learning
subject: hardware beschleuniger
subject: applikations charakterisierung
subject: ressourcen staus
subject: gruppierung
subject: edge intelligence
subject: edge
subject: faas
subject: function-as-a-service
subject: serverless
subject: iot
subject: docker
subject: kubernetes
subject: container
subject: orchestration
subject: scheduling
subject: machine-learning
subject: hardware accelerators
subject: workload characterization
subject: resource contention
subject: clustering
subject: edge intelligence

description: Edge Intelligence ist ein neues Paradigma, welches Nutzern ermöglicht KI-Applikationen zu verwenden, die eine sehr geringe Latenz benötigen. Edge Computing ermöglicht solche Szenarien. Rechenressourcen werden in der Nähe von Nutzern positioniert, um die nötige Latenz zu garantieren. Diese heterogenen Cluster bestehen aus verschiedenen Geräten, die unterschiedliche Fähigkeiten haben. Zu diesen Geräten gehören: CPU/GPU-basierte Geräte bis hin zu anwendungsspezifischen Beschleunigern. Cloud Rechenzentren sind im Vergleich dazu relativ homogen. Diese Heterogenität stellt ein Problem für Anwendungsentwickler da: sie müssen sich für Geräte entscheiden. Serverless Computing kann eine Lösung für dieses Problem darstellen. Dieses Paradigma versteckt die Infrastruktur und Anwendungsentwickler können Funktionen hochladen. Diese werden anschließend vom System automatisch auf Geräten gestartet. Diese beiden Paradgima werden zu Serverless Edge Computing verknüpft. Das Problem ist: Serverless Plattformen verwenden Scheduler, die ursprünglich für homogene Cluster entwickelt wurden. Daher stellen heterogene Cluster eine Herausforderung für diese Scheduler dar.In dieser Arbeit, präsentieren wir eine Lösung, die mit Hilfe von Anforderungen, von Applikationen, angemessene Geräte findet. Dieser Lösungsversuch wird mit Hilfe von KI-basierter Applikationen-Charakterisierung handhabbar gemacht. Wir verwenden existierende Serverless Plattformen: Kubernetes und OpenFaaS. OpenFaaS ist eine Function-as-a-Service Plattform und verwendet intern Kubernetes, um Anwendung auf Geräten zu platzieren. Der Scheduler von Kubernetes verwendet simple Heuristiken, um Geräte für Anwendungen zu finden. Wir machen den Scheduler aufmerksam auf Applikationen und und schafen das durch drei Erweiterungen. Diese Erweiterungen fokussieren sich auf folgende Punkte: (1) Performance, (2) Ressourcen Staus und (3) das Finden angemessener Geräte für Applikationen. Dies ermöglichen wir durch: (1) umfangreiche Applikationstests auf Geräten bei denen wir Performance und Ressourcenverbrauch messen, (2) eine anschließende Applikations-Charakterisierung und (3) durch Lösen des Problems, Anforderungen für Applikationen zu ermitteln.Wir evaluieren unsere Arbeit mit Hilfe von Simulationen und drei unterschiedlichen Szenarien. Unsere Anwendungen fokussieren sich auf KI-Anwendungen. Unsere Resultate zeigen, dass wir die Ausführungszeit in Edge Computing Szenarien im Durchschnitt um 33% bis 68% senken. Weiters, wir verringern die Verschlechterung von Ausführungszeit, aufgrund von Ressourcen Staus, um 25% bis 57%.
description: Edge Intelligence is a paradigm that promises to bring highly-responsive AI applications to the end users. Edge computing is the main enabler paradigm for this scenario, where computational resources are pushed from the cloud to the edge of the network. These heterogeneous clusters consist of devices that offer different capabilities, which range from general purpose CPUs, to GPUs, to application specific hardware accelerators. Cloud systems are comparatively homogeneous in terms of computing infrastructure. This heterogeneity poses a problem for users, which have to decide the hardware for their applications. To mitigate this issue, serverless computing may be a solution to this problem.Serverless computing helps abstract the underlying infrastructure from users away - allowing users to simply upload functions and offers the convenience of automatic scaling and pay-per-use cost model. Research proposes the idea of merging both paradigms, resulting in serverless edge computing. The problem is, that current serverless computing platforms use schedulers that were developed for homogeneous clusters. Therefore, heterogeneous clusters pose a challenge for serverless container schedulers to find optimal placements for containers. In this thesis, we propose a solution that matches application requirements with appropriate node capabilities made tractable with the help of machine-learning based workload characterization. Our approach builds on existing serverless platforms such as Kubernetes and OpenFaaS. OpenFaaS is a Function-as-a-Service platform that uses Kubernetes as its deployment platform. The Kubernetes scheduler uses simple heuristics to schedule containers to cluster nodes. We extend the scheduler to make it workload-aware by adding three scheduling constraints that focus on: (1) performance, (2) preventing resource contention and (3) matching applications with appropriate nodes.We enable these constraints by (1) extensive profiling, (2) subsequent workload characterization and (3) solving the problem of matching applications with appropriate nodes. We evaluate our approach by running simulations with three different scenarios and focus on AI-based applications. The results show that in edge computing scenarios the Function Execution Time (a key performance indicator) can be reduced by 33% to 68%. Moreover, performance degradation, caused by resource contention, can be reduced by 45% to 57%.