Ενορχήστρωση Πόρων με Χρήση Τεχνικών Μηχανικής Μάθησης
Abstract
Στην παρούσα διπλωματική εργασία μελετώνται οι εφαρμογές μιας νέας τεχνολογίας
εικονοποίησης πόρων, οι περιέκτες, και πως μπορούν να ενορχηστρωθούν σε σενάρια εργασιών
μηχανική μάθησης. Αρχικά, στην εισαγωγή εξηγούνται εις βάθος οι υπάρχουσες τεχνολογίες
εικονοποίησης πόρων, οι εικονικές μηχανές, και στην συνέχεια εισάγεται και εξηγείται η
λειτουργία των περιεκτών. Τέλος, συγκρίνονται οι δυο αυτές τεχνολογίες σε όσους κοινούς άξονες
έχουν και παρουσιάζονται σύντομα τα πλεονεκτήματα και μειονεκτήματα της καθεμιάς.
Η διπλωματική ξεκινάει με την παρουσίαση της νέας μεθόδου εικονοποίησης πόρων, τους
περιέκτες. Στην συνέχεια, αναφέρεται και επεξηγείται ένα ολοκληρωμένο εργαλείο για διαχείριση
μοντέλων μηχανική μάθησης, το TensorFlow. Συγκεκριμένα, στο σύστημα που αναπτύσσεται στα
πλαίσια της παρούσας, χρησιμοποιείται το TensorFlow σε ένα κατανεμημένο περιβάλλον,
επιδεικνύοντας έτσι κυρίως τα πλεονεκτήματα των περιεκτών, μεταξύ των οποίων, η εύκολη
ενορχήστρωσή και κλιμάκωσή τους, ανάλογα με τις απαιτήσεις της κάθε εργασίας.
Ο στόχος της παρούσας, είναι η ανάπτυξη ενός συστήματος, το οποίο να μπορεί να
επεξεργαστεί μοντέλα μηχανικής μάθησης, από την εκπαίδευση μέχρι την αποθήκευση και την
βελτίωση με κατανεμημένο τρόπο, χρησιμοποιώντας ενορχήστρωση περιεκτών. Οι περιέκτες
επιλέχθηκαν διότι φέρουν αυξημένες επιδόσεις σε σύγκριση με τις εικονικές μηχανές, ενώ
διατηρούν την ευκολία στην μεταφερσιμότητα και την κλιμάκωσή τους. Έτσι, το σύστημα που
υλοποιείται έχει επιδόσεις συγκρίσιμες με αυτές ενός φυσικού συστήματος, και δυνατότητες
ενορχήστρωσης των εικονικών του πόρων περισσότερες από εκείνες των εικονικών μηχανών.
Στο τρίτο κεφάλαιο, εκπαιδεύονται αρχικά ένα, και στην συνέχεια δυο μοντέλα μηχανικής
μάθησης στο σύστημα ταυτόχρονα, καταγράφοντας τις επιδόσεις του εκάστοτε υπολογιστή στο
σύστημα. Αφού απεικονιστούν και σχολιαστούν τα αποτελέσματα, συγκρίνονται με ένα σύστημα
αναφοράς το οποίο δεν χρησιμοποιεί περιέκτες, και άρα δεν είναι εύκολα κλιμακούμενο, και
υπολογίζεται η διαφορά στην απόδοση.
This dissertation examines a novel way of resource visualization via containers and
orchestration. The method used for simulating a workload is training Machine Learning models.
The introduction of this dissertation elaborates on the existing techniques of resource visualization,
virtual machines. Sequentially, containers are introduced and elucidated further. Finally, these two
technologies are compared on their similarities, and some advantages and disadvantages of each
method are presented.
This dissertation starts with a description of containers as a way of resource visualization.
Following this description, TensorFlow, a complete machine learning library, is introduced and
shortly explained. More specifically, this dissertation aims at developing a distributed testbed, with
each computer acting as a TensorFlow worker node. This testbed accentuates the significant
benefits of using containers; these benefits include, but are not limited to, ease of orchestration,
high scalability and availability, depending on each processes' needs.
This thesis aims at developing a testbed able to handle the complete lifecycle of a machine
learning model, from its training and storage on disk to its loading and tuning. All of its lifecycle
maintenance will be done distributed, managing the workflow with an appropriate orchestrator
software. Containers were selected due to their increased performance compared to virtual
machines; while still maintaining their transferability and scalability. The resulting system has
performance comparable to a bare-metal system while still having all of the features of virtual
machines.
In the third chapter, the testbed is benchmarked on two scenarios; one consisting of a single
model and the nodes, and one composed of two models simultaneously. After elaborating on the
results, they are compared to a reference system running the same processes natively, not having
the advantages of containers. Along with each test case, resource utilization is monitored and
visualized of each node in the system. The performance drop is calculated and visualized for each
scenario.