Μοντελοποίηση και Προσομοίωση Μεθόδων Ανάθεσης Εργασιών σε Συστήματα Πολλαπλών Clusters ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΑΤΡΙΒΗ. του ΠΑΠΑΣΤΕΡΓΙΟΥ ΓΕΩΡΓΙΟΥ

Σχετικά έγγραφα
Εισαγωγή στην Πληροφορική. Αντώνης Σταµατάκης

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

Λειτουργικά Συστήματα (Λ/Σ)

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

Εργαστηριακή Άσκηση. Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Δρομολόγηση σε σύστημα ενός επεξεργαστή

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

ΠΑΡΑΔΕΙΓΜΑ ΣΤΟ BIZAGI ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

«ροµολόγηση ιεργασιών (2/2): Οργάνωση Επεξεργαστών και ιεργασιών (β)»

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Δρομολόγηση

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend

Λειτουργικά Συστήματα Η/Υ

«ροµολόγηση ιεργασιών (2/2): Οργάνωση Επεξεργαστών και ιεργασιών (α)» Εργασία

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση

Δρομολόγηση (Routing)

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΕΡΓΑΣΙΩΝ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ΛΟΓΙΣΜΙΚΟ EXTEND. 1 ο εργαστήριο Διοίκησης και Παραγωγής Έργων

7.9 ροµολόγηση. Ερωτήσεις

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

ENOTHTA 5 XPONO POMOΛOΓHΣH

Κεφάλαιο 6: Προσομοίωση ενός συστήματος αναμονής

Λειτουργικά Συστήματα

Κεφάλαιο 3. Διδακτικοί Στόχοι

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Σημειώσεις Θεωρίας

ιαµέριση - Partitioning

Εγγυημένη ποιότητα υπηρεσίας

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Λειτουργικά Συστήματα

Λιβανός Γιώργος Εξάμηνο 2017Β

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Άσκηση Προσομοίωσης Στατιστικές Εξόδου Ουράς Μ/Μ/1 - Θεώρημα Burke Ανοικτά Δίκτυα Ουρών Μ/Μ/1 - Θεώρημα Jackson

Λειτουργικά Συστήματα Η/Υ

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Δροµολόγηση (Routing)

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πρωτόκολλα Ελέγχου προσπέλασης μέσου

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

Κεφάλαιο 3 Πολυπλεξία

ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ (INTERNETWORKING)

Σκελετός Παρουσίασης

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Εισαγωγή - ορολογία. Προώθηση (forwarding): Δρομολόγηση (routing):

Κατακερματισμός (Hashing)

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Μετρικές & Επιδόσεις. Κεφάλαιο V

ροµολόγηση Επεξεργαστή

ΚΕΦΑΛΑΙΟ 8 ΣΥΜΠΕΡΑΣΜΑΤΑ. 8.1 Εισαγωγή

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Κεφάλαιο 5: Στρατηγική χωροταξικής διάταξης

3. Προσομοίωση ενός Συστήματος Αναμονής.

Ο βασικός παράγοντας είναι ο χρόνος αξιοποίησης του επεξεργαστή Ελάχιστος αριθµός πράξεων και όχι µακρόχρονες αιτήσεις Ε/Ε

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 6: Κατανομή φόρτου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Κινητά και Διάχυτα Συστήματα. Ενότητα # 10: Κατανομή φόρτου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

7. Η ΔΥΝΑΜΙΚΗ ΤΟΥ ΕΡΓΟΣΤΑΣΙΟΥ

Λειτουργικά Συστήματα Πραγματικού Χρόνου

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

Χρονοπρογραµµατισµός ΚΜΕ (CPU Scheduling)

Εργαστήριο 9: Άλλες Λειτουργίες στα Δίκτυα Κινητών Επικοινωνιών

ΕΙΣΑΓΩΓΗ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΓΩΝ

Τεχνολογία Πολυμέσων. Ενότητα # 16: Πολυεκπομπή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Θέμα 1 (20%) (α) Πότε είναι εργοδικό το παραπάνω σύστημα; Για πεπερασμένο c, το σύστημα είναι πάντα εργοδικό.

Δίκτυα Υπολογιστών I Εργαστήρια

Μοντελοποίηση, Ανάλυση και Σχεδιασμός Στοχαστικών Συστημάτων

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 1: Εισαγωγή. Γαροφαλάκης Ιωάννης Πολυτεχνική Σχολή Τμήμα Μηχ/κών Η/Υ & Πληροφορικής

Συστήματα Κοστολόγησης: Κοστολόγηση Συνεχούς Παραγωγής

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

Ειδικά Θέματα Δικτύων Ι

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

8 η ιάλεξη: σε δίκτυα δεδομένων

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μοντελοποίηση και Προσομοίωση Μεθόδων Ανάθεσης Εργασιών σε Συστήματα Πολλαπλών Clusters ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΑΤΡΙΒΗ του ΠΑΠΑΣΤΕΡΓΙΟΥ ΓΕΩΡΓΙΟΥ Διπλωματούχου Ηλεκτρολόγου Μηχανικού και Μηχανικού Υπολογιστών, Δ.Π.Θ Επιβλέπουσα: Ελένη Καρατζά Αν. Καθηγήτρια ΘΕΣΣΑΛΟΝΙΚΗ 27

Ευχαριστίες Με την ολοκλήρωση της παρούσης εργασίας αισθάνομαι ιδιαίτερα την ανάγκη να ευχαριστήσω την επιβλέπουσα Αναπληρώτρια Καθηγήτρια κα. Ελένη Καρατζά για την εμπιστοσύνη που μου έδειξε, για τις τεχνικές υποδείξεις που μου παρείχε καθώς και για την άψογη συνεργασία που είχαμε κατά την εκπόνηση αυτής της μεταπτυχιακής διατριβής. Επίσης, ευχαριστώ τους γονείς και τον αδερφό μου για την παρότρυνση και την υποστήριξη που μου προσέφεραν καθ όλη την πολύμηνη διαδικασία της ολοκλήρωσης της διατριβής αυτής όπως και όλα τα φιλικά πρόσωπα που με στήριξαν αυτό το χρονικό διάστημα. Παπαστεργίου Γεώργιος, Θεσσαλονίκη, Μάιος 27

Περιεχόμενα Περίληψη 1. Εισαγωγή... 1 1.1 Πολιτικές ανάθεση των tasks... 3 1.1.1. Πιθανοκρατική δρομολόγηση... 5 1.1.2. Round-Robin δρομολόγηση... 6 1.1.3. Least-Loaded-First δρομολόγηση... 6 1.1.4. Probabilistic-Shortest Queue δρομολόγηση... 7 1.1.5. Central-Queue δρομολόγηση... 8 1.1.6. Size Interval Task Assignment with Equal Load (SITA-E)... 8 1.1.7. Task Assignment based on Guessing Size (TAGS)... 9 1.2 Πολιτικές διαμοιρασμού φόρτου...11 1.2.1. Δείκτες φόρτου...12 1.2.2. Επιμέρους πολιτικές...13 1.2.3. Παραδείγματα πολιτικών...15 1.3 Χρονοπρογραμματισμός σε Clusters...19 2. Μοντέλο προσομοίωσης και πειραματική μεθοδολογία...21 2.1 Σύστημα και μοντέλα φόρτου εργασιών...21 2.2 Πολιτικές δρομολόγησης των tasks...25 2.3 Πολιτική μετανάστευσης...26 2.4 Μετρικές απόδοσης...28 3. Υλοποίηση του μοντέλου και παράμετροι εισόδου...3 3.1 Πρόγραμμα προσομοίωσης...3 3.1.1. Προσομοίωση διακεκριμένων γεγονότων...3 3.1.2. Οργάνωση του μοντέλου προσομοίωσης...31 3.1.3. Υπολογισμός των βασικών μετρικών απόδοσης...36 3.1.4. Δημιουργία τυχαίων παρατηρήσεων...38 3.2 Παράμετροι Εισόδου...4 4. Πειραματικά αποτελέσματα...43 4.1 Σενάριο 1: Ομοιογενή χαρακτηριστικά των ρευμάτων άφιξης...43 4.2 Σενάριο 2: Ανομοιογενή χαρακτηριστικά των ρευμάτων άφιξης...61

5. Συμπεράσματα και προοπτικές έρευνας...95 Αναφορές...97 Παράρτημα...11

Περίληψη Η εργασία αυτή μελετάει την επίδραση που έχει στην συμπεριφορά και την απόδοση ενός κατανεμημένου συστήματος το οποίο αποτελείται από δύο ανεξάρτητα clusters που επικοινωνούν μεταξύ τους η εφαρμογή τριών διαφορετικών μηχανισμών ανάθεσης των tasks στους επεξεργαστές του συστήματος σε συνδυασμό με μια πολιτική διαμοιρασμού φόρτου μέσω μεταναστεύσεων. Ο στόχος των μηχανισμών αυτών είναι η εξισορρόπηση του φόρτου στους επεξεργαστές του συστήματος χρησιμοποιώντας όσο το δυνατόν λιγότερες γενικές πληροφορίες για την κατάσταση του συστήματος. Εξετάζονται οι πολιτικές δρομολόγησης Probabilistic, Shortest Queue και Probabilistic-Shortest Queue. H πολιτική διαμοιρασμού φόρτου που εφαρμόζεται στο σύστημα είναι μια απλή receiver-initiated πολιτική μετανάστευσης σύμφωνα με την οποία τα πιο πρόσφατα tasks στις ουρές τον υπερφορτωμένων επεξεργαστών μεταφέρονται σε ανενεργούς επεξεργαστές του τοπικού ή του απομακρυσμένου cluster. Το σύστημα μοντελοποιείται με βάση την θεωρία ουρών και τα αποτελέσματα εξάγονται μέσω της προσομοίωσης διακεκριμένων γεγονότων. Το μοντέλο εξετάζεται κάτω από συνθετικό φόρτο εργασιών, ο οποίος αποτελείται από εργασίες που μπορούν να μεταναστεύσουν και από εργασίες που δεν μπορούν, και συγκρίνεται η απόδοση του για τις τρεις πολιτικές δρομολόγησης. Στο Κεφάλαιο 1 γίνεται μια γενική εισαγωγή στις διάφορες έννοιες που αναφερόμαστε. Κατόπιν, στο Κεφάλαιο 2 περιγράφεται αναλυτικά το μοντέλο προσομοίωσης που χρησιμοποιήθηκε και η πειραματική μεθοδολογία. Στο Κεφάλαιο 3 γίνεται μια περιγραφή για το πρόγραμμα προσομοίωσης που αναπτύχθηκε και δίνονται οι διάφορες παράμετροι εισόδου του προγράμματος, και στο Κεφάλαιο 4 παρουσιάζονται και αναλύονται τα αποτελέσματα της προσομοίωσης. Τέλος, στο Κεφάλαιο 5 συνοψίζονται τα σημαντικότερα συμπεράσματα από την προσομοίωση του συστήματος.

Abstract This work studies the effects on behaviour and performance of a distributed system which consists of two independent clusters of processors that communicate with each other the application of three different task allocation mechanisms along with a migrative load sharing policy. The objective of these mechanisms is to balance the workload among the processors of the system using as less as possible system state information. The Probabilistic, Shortest Queue and Probabilistic-Shortest Queue task allocations policies are examined. The applied load sharing policy is a receiverinitiated migration policy according to which the most recent tasks in the queues of overloaded nodes are transferred to idle nodes of the local or remote cluster. The system is modelled according to the queuing theory and the results are derived through discrete-event simulation. The simulation model is examined under synthetic workload, which consists of jobs that can migrate and jobs that can t, and its performance in the three routing policies cases is compared. The paper is organized as follows. Chapter 1 gives an introduction to related concepts and Chapter 2 describes the simulation model that was used and the experimental methodology. In Chapter 3, a description of the simulation program that was developed and the input parameters are given, while the results of the simulation experiments are presented and analyzed in Chapter 4. The final chapter offers conclusions and provides suggestions for further research.

1. Εισαγωγή Ένα κατανεμημένο σύστημα αποτελείται από μια συλλογή ανεξάρτητων συστημάτων (κόμβων) τα οποία μοιράζονται κάποιους πόρους. Τα τελευταία χρόνια, τα κατανεμημένα συστήματα γίνονται όλο και πιο συχνά επειδή παρέχουν την δυνατότητα για αυξημένη υπολογιστική ισχύ, έχουν μεγάλη αποτελεσματικότητα κόστους και μπορούν να επεκταθούν εύκολα. Τα συστήματα αυτά είναι απαραίτητα για να ικανοποιηθούν οι ανάγκες των απαιτητικών εφαρμογών των διαφόρων επιστημονικών πεδίων. Ακόμα και τα πιο ισχυρά υπολογιστικά περιβάλλοντα υψηλής απόδοσης χρειάζονται κάποιο κατάλληλο χρονοπρογραμματισμό (scheduling) για να επιτύχουν την επιθυμητή ποιότητα υπηρεσίας τόσο από την μεριά του συστήματος όσο και του χρήστη. Για τον λόγο αυτό πολλοί ερευνητές αναζητούν μεθόδους χρονοπρογραμματισμού οι οποίες θα βελτιστοποιούν την απόδοση του κατανεμημένου συστήματος. Επιπλέον, οι πρόσφατες εξελίξεις στα υπολογιστικά περιβάλλοντα, όπως τα grid περιβάλλοντα και τα ετερογενή clusters, παρουσιάζουν νέες προκλήσεις χρονοπρογραμματισμού. Η ετερογένεια αυτών των συστημάτων και η μεταβλητότητα των πόρων (επεξεργαστές ή ομάδες επεξεργαστών μπορούν να προστεθούν ή να αφαιρεθούν οποιαδήποτε στιγμή) απαιτεί συχνά αφοσιωμένες τεχνικές χρονοπρογραμματισμού για κάθε ομάδα πόρων του κατανεμημένου υπολογιστικού περιβάλλοντος. Ο χρονοπρογραμματισμός σε κατανεμημένα συστήματα έχει μελετηθεί εκτενώς προσπαθώντας να επιτύχει διαφόρους στόχους απόδοσης σε πολλούς τύπους κατανεμημένων συστημάτων και παράλληλου φόρτου εργασίας. Είναι γενικά παραδεκτό ότι ο χρονοπρογραμματισμός είναι θεμελιώδης για την επιτυχία των κατανεμημένων συστημάτων [1] [2]. Σήμερα υπάρχουν διάφοροι τύποι κατανεμημένων συστημάτων, τα περισσότερα από τα οποία αποτελούνται από ένα μεγάλο αριθμό επεξεργαστών. Η πληθώρα κατανεμημένων συστημάτων όπως επίσης και η μεγάλη ποικιλία σε υλικό (hardware) και λογισμικό (software) κάνουν την διαχείριση των πόρων ενός κατανεμημένου συστήματος εξαιρετικά δύσκολη. Ο χρονοπρογραμματισμός των παράλληλων tasks μιας εργασίας (job) είναι τις περισσότερες φορές ένα σύνθετο πρόβλημα που καθορίζει τόσο για το πότε θα - 1 -

Κεφάλαιο 1 Εισαγωγή εκτελεστεί μια διεργασία αλλά και πού θα εκτελεστεί [3]. Σύμφωνα με αυτό, ο χρονοπρογραμματισμός στα κατανεμημένα συστήματα αποτελείται από δύο στοιχεία: τον διανεμητή (allocator) και τον χρονοπρογραμματιστή (scheduler). O διανεμητής αποφασίζει για το πού θα εκτελεστεί ένα task και ο χρονοπρογραμματιστής αποφασίζει πότε θα πάρει ένα task το μερίδιο του επεξεργαστή που του ανήκει. Τυπικά κάθε κόμβος σε ένα κατανεμημένο σύστημα έχει τον δικό του χρονοπρογραμματιστή για να χρονοπρογραμματίζει τα tasks στον τοπικό επεξεργαστή, συνήθως με τρόπους διαμοιρασμού του χρόνου, ενώ οι αποφάσεις υψηλότερου επιπέδου για την εκχώρηση των διεργασιών σε ένα κόμβο λαμβάνονται από τον διανεμητή. Παρ όλο που υπάρχουν αρκετές παραλλαγές [4], αυτό το σχήμα δείχνει να είναι πιο φυσικό για τα κατανεμημένα συστήματα. Ο λόγος για αυτό είναι διπλός. Πρώτον, κάθε κόμβος έχει συνήθως το δικό του λειτουργικό σύστημα το οποίο είναι ικανό για χρονοπρογραμματισμό των διεργασιών. Ο δεύτερος λόγος είναι ότι οι σχεδιαστές ενός κατανεμημένου συστήματος μπορούν να εστιάσουν καλύτερα στο πολύπλοκο πρόβλημα της διανομής του φόρτου χωρίς να επιβαρύνονται με την κάθε λεπτομέρεια του χρονοπρογραμματισμού. Ο διανεμητής και ο χρονοπρογραμματιστής εφαρμόζουν τις πολιτικές ανάθεσης των tasks και χρονοπρογραμματισμού αντίστοιχα. Η πολιτική ανάθεσης προσπαθεί να κατανείμει τον συνολικό φόρτο του συστήματος στους ανεξάρτητους κόμβους μεταφέροντας τις εργασίες στους κόμβους. Η πολιτική χρονοπρογραμματισμού απλά ελέγχει το σύνολο των διεργασιών που είναι διαθέσιμες σε ένα κόμβο και επιλέγει να εκτελεστεί η πιο κατάλληλη διεργασία με στόχο την μεγιστοποίηση της συνολικής απόδοσης. Η πολιτική χρονοπρογραμματισμού των διεργασιών οποιοδήποτε παραδοσιακού λειτουργικού συστήματος μπορεί να θεωρηθεί σαν πολιτική χρονοπρογραμματισμού, παρ όλο που σε μερικά ειδικά συστήματα μπορούν να χρησιμοποιηθούν ειδικές τεχνικές, όπως για παράδειγμα η τεχνική του co-scheduling [4]. Στην πραγματικότητα, ο χρονοπρογραμματισμός επιτυγχάνεται κυρίως από το λειτουργικό σύστημα. Έτσι στην παρούσα εργασία εστιάζουμε μόνο στον τρόπο εκχώρησης των εργασιών στους κόμβους του συστήματος. - 2 -

Κεφάλαιο 1 Εισαγωγή 1.1 Πολιτικές ανάθεσης των tasks Σε ένα κατανεμημένο σύστημα οι εργασίες (jobs) που φτάνουν σε αυτό, και πιο συγκεκριμένα τα παράλληλα tasks από τα οποία αποτελείται κάθε εργασία, πρέπει να εκχωρηθούν στους κόμβους του συστήματος για επεξεργασία. Όπως αναφέραμε και προηγουμένως ο κανόνας που ακολουθείται για την εκχώρηση των εργασιών είναι γνωστός και ως πολιτική ανάθεσης των tasks (Task Allocation Policy). Η επιλογή της πολιτικής ανάθεσης των εργασιών έχει σημαντική επίδραση στην απόδοση που παρατηρείται από τον χρήστη ενός τέτοιου συστήματος. Έτσι, ο σχεδιασμός ενός κατανεμημένου συστήματος καταλήγει στην επιλογή της καλύτερης δυνατής πολιτικής εκχώρησης των εργασιών για το συγκεκριμένο μοντέλο και τις απαιτήσεις των χρηστών. Παρ όλο που η επινόηση νέων πολιτικών είναι εύκολη, η ανάλυση ακόμα και των πιο απλών πολιτικών μπορεί να αποδειχθεί πολύ δύσκολη: Μερικές από τις πιο μακροχρόνιες αναπάντητες ερωτήσεις στην θεωρία των ουρών περιλαμβάνουν την ανάλυση της απόδοσης των πολιτικών ανάθεσης των εργασιών [5][6][7][8]. FCFS Host 1 FCFS Host 2 Εξωτερικές αφίξεις Διανεμητής FCFS Host 3 FCFS Host 4 Εικόνα 1.1. Ένα τυπικό κατανεμημένο σύστημα με τέσσερις κόμβους Στην ενότητα αυτή περιγράφονται οι σημαντικότερες πολιτικές ανάθεσης των tasks που χρησιμοποιούνται πιο συχνά καθώς και μερικές ακόμα πολιτικές που έχουν - 3 -

Κεφάλαιο 1 Εισαγωγή προταθεί στην βιβλιογραφία. Σε όλες αυτές τις πολιτικές η εκχώρηση των tasks στους κόμβους του συστήματος γίνεται μέσω ενός κεντρικού διανεμητή (dispatcher), ο οποίος στις περισσότερες περιπτώσεις δεν γνωρίζει εκ των προτέρων το μέγεθος του κάθε task. Η Εικόνα 1.1 δείχνει ένα τυπικό παράδειγμα ενός κατανεμημένου συστήματος το οποίο αποτελείται από τέσσερις κόμβους και έναν διανεμητή. Στην πράξη μπορεί να λείπει η μονάδα διανομής και οι χρήστες του συστήματος μπορεί να αποφασίζουν από μόνοι τους σε ποιον κόμβο επιθυμούν να τρέξουν την εργασία τους. Οι εργασίες που φτάνουν σε έναν κόμβο εκτελούνται σύμφωνα με την πειθαρχία First-Come-First-Served (FCFS), σύμφωνα με την οποία οι εργασίες (και πιο συγκεκριμένα τα tasks από τα οποία αποτελούνται οι εργασίες) εκτελούνται με την σειρά που αφίχθησαν. Σύμφωνα με τα [6] και [7] οι πολιτικές ανάθεσης των tasks μπορούν να ομαδοποιηθούν σε τρείς κατηγορίες: α) Στατικές: οι στατικές πολιτικές ανάθεσης δεν χρησιμοποιούν δυναμικές πληροφορίες, όπως για παράδειγμα τον φόρτο στο σύστημα. Χρησιμοποιούν στατικές πληροφορίες που συνήθως αφορούν στο σύστημα στο οποίο θα εφαρμοστούν και σε εκτιμήσεις για την κατανομή των tasks που πρόκειται να φτάσουν στο σύστημα. Ένα μεγάλο πλεονέκτημα των τεχνικών αυτών είναι ότι δεν εισάγουν καθόλου κόστος εκτέλεσης (run-time overhead). Επίσης, οι τεχνικές αυτές είναι πιο εύκολο να σχεδιαστούν και μπορούν να είναι εξαιρετικά αποδοτικές όταν εφαρμόζονται σε ομοιογενή κατανεμημένα συστήματα. Παρ όλα αυτά, η απόδοση τους εξαρτάται από τους προβλεπόμενους χρόνους εκτέλεσης και έτσι μπορεί να μην είναι κατάλληλες για δυναμικά ή απρόβλεπτα περιβάλλοντα και εφαρμογές. Υπάρχουν δύο ευρέως γνωστές στατικές πολιτικές δρομολόγησης των tasks: η Πιθανοκρατική (Probabilistic) δρομολόγηση και η δρομολόγηση Κυκλικής Εναλλαγής (Round-Robin), οι οποίες περιγράφονται παρακάτω. β) Δυναμικές: οι δυναμικές πολιτικές ανάθεσης προσπαθούν να βελτιώσουν τις κλασικές στατικές μεθόδους λαμβάνοντας υπόψη τον φόρτο του συστήματος για πιο έξυπνη κατανομή των tasks στους διαφόρους κόμβους του συστήματος. Οι τεχνικές αυτές εισάγουν όμως κάποιο κόστος εκτέλεσης, το οποίο προκύπτει λόγω του ότι απαιτείται η συνεχής παρατήρηση της τρέχουσας κατάστασης του συστήματος στη διάρκεια του χρόνου. Συνήθως οι δυναμικές τεχνικές δεν είναι πολύ πολύπλοκες στον σχεδιασμό τους και δεν εισάγουν μεγάλο κόστος εκτέλεσης. Έτσι, οι δυναμικές - 4 -

Κεφάλαιο 1 Εισαγωγή πολιτικές εκχώρησης έχουν γενικά την δυνατότητα να αποδώσουν καλύτερα από τις στατικές. Οι πιο γνωστοί δυναμικοί αλγόριθμοι δρομολόγησης είναι ο Shortest-Queue (SQ) και ο Least-Work-Remaining (LWR), οι οποίοι ανήκουν στην γενική κατηγορία των Least-Loaded-First (LLF) πολιτικών, ο Probabilistic-Shortest-Queue και ο Central-Queue, οι οποίοι εξηγούνται παρακάτω. γ) Βασισμένες στο μέγεθος των tasks (Size-Based): σε αυτές τις πολιτικές ανάθεσης κάθε κόμβος εξυπηρετεί tasks των οποίων οι απαιτήσεις εξυπηρέτησης ανήκουν σε μια καθορισμένη κατηγορία. Οι size-bazed πολιτικές χωρίζουν την κατανομή του μεγέθους των tasks σε έναν αριθμό διαστημάτων και κάθε κόμβος του κατανεμημένου συστήματος σχεδιάζεται έτσι ώστε να εκτελεί tasks των οποίων το μέγεθος αντιστοιχεί σε ένα τέτοιο διάστημα. Τα εισερχόμενα tasks στη συνέχεια εκχωρούνται στατικά σε κάποιον εξυπηρέτη ανάλογα με το μέγεθος του. Με τον τρόπο αυτό ομαδοποιούνται σε κάθε κόμβο tasks με παρόμοιο μέγεθος, με στόχο να αποκλειστούν οι περιπτώσεις όπου ένα μικρό task μένει κολλημένο πίσω από ένα σημαντικά μεγαλύτερο task. Αλγόριθμοι που ανήκουν στην κατηγορία αυτή είναι ο Size Interval Task Assignment with Equal Load (SITA-E) και o Task Assignment based on Guessing Size (TAGS), τους οποίους περιγράφουμε παρακάτω. 1.1.1 Πιθανοκρατική δρομολόγηση Σύμφωνα με την Πιθανοκρατική (Probabilistic) πολιτική ανάθεσης των tasks κάθε εργασία, και πιο συγκεκριμένα κάθε παράλληλο task της εργασίας, αποστέλλεται στον κόμβο i πιθανότητα 1 / h, όπου h ο συνολικός αριθμός των κόμβων του κατανεμημένου συστήματος. Η πολιτική αυτή εξισώνει τον αναμενόμενο αριθμό των εργασιών σε κάθε κόμβο και χρησιμοποιείται συνήθως ως βάση για την σύγκριση άλλων πολιτικών δρομολόγησης. Η απόδοση της Πιθανοκρατικής δρομολόγησης συνδέεται άμεσα με την απόκλιση της κατανομής του μεγέθους των εργασιών/tasks και χειροτερεύει όσο μεγαλώνει η μεταβλητότητα του μεγέθους των tasks, καθώς η ανάθεση των tasks δεν λαμβάνει υπόψη τον φόρτο σε κάθε κόμβο [6][7]. - 5 -

Κεφάλαιο 1 Εισαγωγή 1.1.2 Round-Robin δρομολόγηση Η πολιτική κυκλικής εναλλαγής είναι η πιο συνηθισμένη πολιτική εκχώρησης των tasks, σύμφωνα με την οποία τα tasks ανατίθενται στους κόμβους του συστήματος με κυκλικό τρόπο με το ι-οστό task να εκχωρείται στον κόμβο i mod h, όπου h ο συνολικός αριθμός των κόμβων του κατανεμημένου συστήματος. Η πολιτική αυτή, όπως και η Πιθανοκρατική, είναι απλή και εξισώνει τον αναμενόμενο αριθμό των tasks σε κάθε κόμβο. Οι συγγραφείς του [8] δείχνουν ότι η πολιτική Round-Robin έχει παρόμοια χαρακτηριστικά απόδοσης με την Πιθανοκρατική πολιτική. Η απόδοση της συνδέεται άμεσα με την απόκλιση της κατανομής του μεγέθους των tasks, δεν μεγιστοποιεί την χρησιμοποίηση των εξυπηρετών και δεν ελαχιστοποιεί τους χρόνους απόκρισης των εργασιών. Ο συγγραφέας του [9] δείχνει ότι στην περίπτωση ομοιογένειας των εξυπηρετών η εκχώρηση των tasks κυκλικά στις ουρές είναι βέλτιστη για εκθετικούς χρόνους εξυπηρέτησης. Επιπλέον, οι συγγραφείς του [1] γενικεύουν την διαπίστωση αυτή για την περίπτωση των όμοιων IFR (Increasing Failure Rate) εξυπηρετών. 1.1.3 Least-Loaded-First δρομολόγηση Σύμφωνα με την πολιτική LLF τα tasks εκχωρούνται στους εξυπηρέτες με τον λιγότερο υπολειπόμενο χρόνο εργασίας, προσπαθώντας έτσι να επιτύχουν μια στιγμιαία εξισορρόπηση του φόρτου. Ο υπολειπόμενος χρόνος εργασίας σε κάθε εξυπηρέτη μπορεί να μετρηθεί με δύο τρόπους: α) Στην πρώτη περίπτωση θεωρείται ότι δεν είναι γνωστό το μέγεθος των tasks και o υπολειπόμενος χρόνος εργασίας μπορεί να μετρηθεί προσεγγιστικά από το μήκος της ουράς κάθε εξυπηρέτη, δηλαδή από τον αριθμό των tasks που περιμένουν για εξυπηρέτηση στην ουρά του εξυπηρέτη. Η πολιτική αυτή ονομάζεται Shortest Queue και τα εισερχόμενα tasks δρομολογούνται στον εξυπηρέτη με τον μικρότερο αριθμό tasks. Σύμφωνα με το [11], η πολιτική αυτή είναι βέλτιστη όταν η κατανομή του μεγέθους των εργασιών είναι εκθετική και η διαδικασία άφιξης Poisson. Στην εργασία αυτή η βέλτιστη κατάσταση ορίζεται ως η μεγιστοποίηση του αριθμού των εργασιών που ολοκληρώνονται σε ένα σταθερό χρονικό διάστημα t. Οι συγγραφείς του [12] δείχνουν ότι η δρομολόγηση Shortest Queue ελαχιστοποιεί τον - 6 -

Κεφάλαιο 1 Εισαγωγή αναμενόμενο συνολικό χρόνο για την ολοκλήρωση όλων των εργασιών που φτάνουν στο σύστημα για ένα σταθερό χρονικό διάστημα t, για εκθετική κατανομή του μεγέθους των εργασιών και για τυχαία διαδικασία άφιξης. β) Στη δεύτερη περίπτωση θεωρείται ότι το μέγεθος των tasks είναι γνωστό εκ των προτέρων και κάθε εισερχόμενο task εκχωρείται στον εξυπηρέτη με το μικρότερο άθροισμα των μεγεθών των εργασιών που περιμένουν στην ουρά και του υπολειπόμενου χρόνου του task που εξυπηρετείται. Η πολιτική αυτή ονομάζεται Least-Work-Remaining (LWR) και πλησιάζει περισσότερο στην επίτευξη εξισορροπημένου φόρτου στο σύστημα, απαιτεί όμως την επιπλέον γνώση των απαιτήσεων εξυπηρέτησης των tasks που φτάνουν στο σύστημα και η οποία δεν είναι πάντα διαθέσιμη. Στις περιπτώσεις όπου η LLF βασίζεται στον αριθμό των εργασιών στις ουρές για την εξισορρόπηση των εισερχόμενων tasks και όπου η μεταβλητότητα του μεγέθους των tasks είναι υψηλή, είναι προφανές ότι η πληροφορία αυτή δεν είναι αντιπροσωπευτική του φόρτου σε κάθε εξυπηρέτη και αυτό επιδρά αρνητικά στην απόδοση του συστήματος. Γενικά, όταν η μεταβλητότητα του μεγέθους των tasks είναι χαμηλή, η LLF πολιτική επιδεικνύει πολύ καλή απόδοση, ενώ για υψηλές αποκλίσεις των tasks η απόδοση μειώνεται [13] και οι νέες πολιτικές που βασίζονται στο μέγεθος (size-based) αποδίδουν καλύτερα [8]. 1.1.4 Probabilistic-Shortest Queue δρομολόγηση Ο συγγραφέας του [14] προτείνει έναν απλό δυναμικό αλγόριθμο ανάθεσης των tasks στους επεξεργαστές ενός κατανεμημένου συστήματος το οποίο αποτελείται από n όμοιους επεξεργαστές, σύμφωνα με τον οποίο για κάθε εισερχόμενο task επιλέγονται με τυχαίο τρόπο d επεξεργαστές και το task εκχωρείται στον επεξεργαστή με το μικρότερο αριθμό tasks στην ουρά του. Στην παρούσα εργασία θα ονομάζουμε την πολιτική αυτή ως Probabilistic-Shortest Queue, καθώς συνδυάζει χαρακτηριστικά των πολιτικών Probabilistic και Shortest Queue. Ο συγγραφέας του [14] αποδεικνύει αναλυτικά ότι όταν η αφίξεις είναι Poisson και οι χρόνοι εξυπηρέτησης των tasks είναι εκθετικά κατανεμημένοι, η επιλογή δύο τυχαίων επεξεργαστών (d = 2) οδηγεί σε εκθετικές βελτιώσεις στον αναμενόμενο χρόνο παραμονής των εργασιών στο - 7 -

Κεφάλαιο 1 Εισαγωγή σύστημα συγκριτικά με την Πιθανοκρατική δρομολόγηση. Επιπλέον, η επιλογή τριών επεξεργαστών (d = 3) αποδίδει καλύτερα από την προηγούμενη κατά ένα σταθερό παράγοντα. 1.1.5 Central-Queue δρομολόγηση Η πολιτική Central-Queue, ή αλλιώς Μ / G / k, συγκρατεί όλα τα tasks στην μονάδα του διανεμητή σε μια ουρά με πειθαρχία εξυπηρέτησης FCFS, και μόνο όταν ένας κόμβος του συστήματος είναι ελεύθερος ζητάει κάποιο task από τον διανεμητή και λαμβάνει έτσι το επόμενο task στην ουρά. Η πολιτική αυτή μεγιστοποιεί την χρησιμοποίηση των κόμβων και με τον τρόπο αυτό βοηθάει στην ελαχιστοποίηση του μέσο χρόνου απόκρισης. Μπορεί να αποδειχθεί ότι παρ όλο που η δρομολόγηση Central-Queue δεν απαιτεί εκ των προτέρων την πληροφορία για το μέγεθος κάθε task αποδίδει παρόμοια με την πολιτική Least-Work-Remaining που περιγράψαμε προηγουμένως και που εκχωρεί κάθε task στον εξυπηρέτη με μικρότερο συνολικό υπολειπόμενο χρόνο [15]. Έτσι, η δρομολόγηση Central-Queue αποδίδει καλά για εκθετικές κατανομές του μεγέθους των tasks και η απόδοση της χειροτερεύει όταν η κατανομή του μεγέθους των tasks έχει μεγαλύτερη απόκλιση. Για να αντιμετωπιστούν οι περιπτώσεις όπου η κατανομή του χρόνου εξυπηρέτησης που απαιτείται από τα tasks έχει μεγάλη απόκλιση, έχουν προταθεί στην βιβλιογραφία οι size-bazed πολιτικές μερικές από τις οποίες περιγράφονται παρακάτω. 1.1.6 Size Interval Task Assignment with Equal Load (SITA-E) Όπως αναφέραμε προηγουμένως, στις size-bazed πολιτικές κάθε κόμβος του συστήματος σχετίζεται με ένα εύρος μεγέθους και κάθε task αποστέλλεται στον κατάλληλο κόμβο ανάλογα με το μέγεθος του. Κατά κάποιο τρόπο στην πράξη αυτά τα εύρη μεγέθους επιλέγονται συνήθως τυχαία. Οι συγγραφείς του [8] προτείνουν έναν πιο τυπικό αλγόριθμο για δρομολόγηση βασισμένη στο μέγεθος. Η βασική ιδέα του αλγορίθμου είναι ο ορισμός των διαστημάτων μεγέθους των tasks με τέτοιο τρόπο ώστε ο συνολικός φόρτος που κατευθύνεται σε κάθε κόμβο να είναι ο ίδιος. Το - 8 -

Κεφάλαιο 1 Εισαγωγή κίνητρο γι αυτό είναι ότι η εξισορρόπηση του φορτίου ελαχιστοποιεί τον μέσο χρόνο απόκρισης. Ο μηχανισμός για την επίτευξη ισορροπημένου αναμενόμενου φόρτου στους κόμβους χρησιμοποιεί την κατανομή του μεγέθους των tasks για τον ορισμό των ορίων των διαστημάτων μεγέθους έτσι ώστε ο αναμενόμενος φόρτος προς κάθε κόμβο να είναι ο ίδιος. Η κατανομή του μεγέθους των εργασιών είναι εύκολο να υπολογιστεί διατηρώντας ένα ιστόγραμμα στον διανεμητή για όλα τα μεγέθη των εργασιών που έχουν κατατεθεί σε αυτόν σε μια χρονική περίοδο. Τα όρια των διαστημάτων, δοθείσας της κατανομής, υπολογίζονται μια φορά και στη συνέχεια ο διανεμητής χρειάζεται να θυμάται τα όρια αυτά για να εφαρμόσει την πολιτική SITA- E. Ένα πλεονέκτημα του SITA-E είναι ότι αν η κατανομή του μεγέθους των εργασιών αλλάξει σημαντικά κατά την διάρκεια του χρόνου, τα όρια μπορούν να υπολογιστούν ξανά και να προσαρμοστούν στην αλλαγή. Η πολιτική SITA-E μπορεί να εφαρμοστεί σε οποιαδήποτε κατανομή του μεγέθους των εργασιών με πεπερασμένο μέσο. Οι συγγραφείς του [8] δείχνουν με προσομοίωση ότι στην περίπτωση όπου η μεταβλητότητα του μεγέθους των tasks είναι υψηλή, η δρομολόγηση SITA-E αποδίδει σταθερά καλύτερα από όλες τις προηγούμενες πολιτικές δρομολόγησης και η απόδοση της είναι σχεδόν ανεπηρέαστη από αλλαγές στην μεταβλητότητα. 1.1.7 Task Assignment based on Guessing Size (TAGS) Πολλές προσεγγίσεις που βασίζονται στο μέγεθος των εργασιών θεωρούν ότι ο χρόνος εξυπηρέτησης των tasks είναι γνωστός την στιγμή της εκχώρησης. Η περίπτωση αυτή όμως είναι γενικά σπάνια. Η πολιτική TAGS [15] αναγνωρίζει το γεγονός αυτό και θεωρεί ότι το μέγεθος των tasks είναι άγνωστο την στιγμή της ανάθεσης και έχει σχεδιαστεί ειδικά για φόρτους εργασίας με μεγάλη μεταβλητότητα Σύμφωνα με την πολιτική αυτή κάθε κόμβος του συστήματος αντιστοιχίζεται με ένα χρονικό όριο, έτσι ώστε κάθε task εκτελείται σε κάθε κόμβο μέχρι το προσχεδιασμένο χρονικό όριο. Αν το task δεν έχει ολοκληρωθεί μέχρι τότε, σταματάει και ξεκινάει από την αρχή στον επόμενο κόμβο. Τα χρονικά αυτά όρια είναι συνάρτηση της κατανομής του μεγέθους των εργασιών και του εξωτερικού ρυθμού άφιξης, και μπορούν να καθοριστούν παρατηρώντας το σύστημα για κάποιο χρονικό διάστημα. - 9 -

Κεφάλαιο 1 Εισαγωγή Στο [15] προτείνονται τρεις παραλλαγές του αλγορίθμου TAGS: TAGS-optslowdown, ο οποίος σχεδιάστηκε για να ελαχιστοποιεί το μέσο slowdown 1, TAGSopt-waitingtime, ο οποίος σχεδιάστηκε για να ελαχιστοποιεί τον μέσο χρόνο αναμονής, και ο TAGS-opt-fairness, o οποίος σχεδιάστηκε για βελτιστοποιεί την δικαιοσύνη, πετυχαίνοντας ταυτόχρονα παρόμοιο μέσο slowdown και μέσο χρόνο απόκρισης με τις δύο άλλες προσεγγίσεις. Με τον όρο δικαιοσύνη εννοούμε την επιθυμητή ιδιότητα όπου όλα τα tasks, μεγάλα και μικρά, θα έχουν το ίδιο αναμενόμενο slowdown. Παρ όλο που η πολιτική TAGS μοιάζει να είναι μη διαισθητική σαν ιδέα καθώς δεν προκαλεί εξισορρόπηση του φόρτου, φαίνεται να αποδίδει καλύτερα σε σύγκριση με τις πολιτικές Probabilistic, LWR και SITA-E. Οι συγγραφείς σημειώνουν ότι όσο μεγαλύτερος είναι η μεταβλητότητα του μεγέθους των εργασιών τόσο μεγαλύτερη είναι η βελτίωση της πολιτικής TAGS σε σύγκριση με τις υπόλοιπες πολιτικές, αλλά οι βελτιώσεις αυτές εξαρτώνται από τον φόρτο ο οποίος δεν πρέπει να είναι υπερβολικά υψηλός λόγω του αυξημένου overhead επεξεργασίας που προκαλείται από την επανεκκίνηση ενός μεγάλου αριθμού tasks από την αρχή. Ένας περιορισμός της πολιτικής TAGS είναι η στατική φύση της. Αν τα χαρακτηριστικά της κατανομής του μεγέθους των εργασιών αλλάξουν σημαντικά, η απόδοση θα μειωθεί. Παρ όλο που τα χρονικά όρια μπορούν να υπολογισθούν ξανά, αυτό θα προκαλέσει σημαντικό overhead και είναι μια λειτουργία η οποία δεν θα πρέπει να εκτελείται συχνά. 1 Ως slowdown ορίζεται ο λόγος του χρόνο απόκρισης του task προς τον χρόνο εξυπηρέτησής του. - 1 -

Κεφάλαιο 1 Εισαγωγή 1.2 Πολιτικές Διαμοιρασμού φόρτου Γενικά, σε ένα κατανεμημένο σύστημα κανένας επεξεργαστής δεν πρέπει να παραμένει ανενεργός ενώ την ίδια στιγμή άλλοι επεξεργαστές είναι υπερφορτωμένοι. Εκτός από της τεχνικές ανάθεσης των tasks που περιγράψαμε νωρίτερα, οι οποίες προσπαθούν να εξισορροπήσουν τον φόρτο ανάμεσα στους επεξεργαστές, επιπλέον τεχνικές έχουν μελετηθεί για την βελτίωση της απόδοσης των κατανεμημένων συστημάτων και αφορούν στην μεταφορά των tasks από τους υπερφορτωμένους στους μη-υπερφορτωμένους επεξεργαστές [16][17][18][19][2][21][3]. Ο όρος διαμοιρασμός φόρτου (Load Sharing, LS) περιγράφει την διαδικασία με την οποία εξασφαλίζεται ότι κανένας επεξεργαστής δεν θα παραμένει ανενεργός ενώ υπάρχουν tasks που περιμένουν για εκτέλεση στις ουρές άλλων επεξεργαστών. Η μεταφορά ενός task από την ουρά ενός επεξεργαστή στην ουρά κάποιου άλλου αναφέρεται στην βιβλιογραφία με τον όρο μετανάστευση (migration). Υπάρχουν δύο τύποι μετανάστευσης των tasks και οι οποίοι αναφέρονται συχνά με τους όρους προεκτοπιστική (preemptive) και μη-προεκτοπιστική (non-preemptive) μετανάστευση. Η προεκτοπιστική μετανάστευση αναφέρεται στην μετανάστευση ενός task του οποίου η εκτέλεση έχει ήδη ξεκινήσει. Είναι προφανές ότι η μηπροεκτοπιστική μετανάστευση μπορεί να εφαρμοστεί πιο εύκολα καθώς δεν απαιτεί από το σύστημα την δημιουργία σημείων ελέγχου (checkpoints) της κατάστασης του task που εκτελείται και την μεταφορά της κατάστασης αυτής στον επεξεργαστή που πρόκειται να μεταναστεύσει. Αν οι δύο επεξεργαστές διαφέρουν ως προς την αρχιτεκτονική τους, η προεκτοπιστική μετανάστευση είναι δύσκολο να υλοποιηθεί. Επιπλέον, όσο αφορά τον χρόνο, η διαδικασία της μετανάστευσης είναι πιο δαπανηρή καθώς πρέπει να μεταφερθεί στον κόμβο προορισμού ολόκληρη η κατάσταση του task και η οποία μπορεί να είναι σχετικά μεγάλη. Σύμφωνα με το [22], αυτό το επιπλέον overhead περιορίζει σε μεγάλο βαθμό το κέρδος στην απόδοση που μπορεί να επιτευχθεί εφαρμόζοντας προεκτοπιστικές μεταφορές tasks συγκριτικά με ένα σύστημα που δεν τις εφαρμόζει. - 11 -

Κεφάλαιο 1 Εισαγωγή 1.2.1 Δείκτες φόρτου (Load Indices) Η ακριβής μέτρηση του φόρτου στους διάφορους επεξεργαστές του συστήματος είναι πολύ σημαντική για την λήψη αποφάσεων διαμοιρασμού του φόρτου. Η μέτρηση του φόρτου στους κόμβους ενός κατανεμημένου συστήματος είναι μια εξαιρετικά δύσκολη διαδικασία. Συνήθως ο φόρτος μετριέται με κάποια μετρική, η οποία ονομάζεται δείκτης φόρτου (load index). Ο δείκτης φόρτου κάποιου κόμβου συγκρίνεται συνήθως με ένα ή δύο κατώφλια (thresholds) και ο κόμβος ταξινομείται ως υπερφορτωμένος (overloaded), μη-φορτωμένος (underloaded) ή τίποτα από τα δύο. Ένας μεγάλος αριθμός από πιθανές μετρικές έχει μελετηθεί στο παρελθόν, ο οποίος περιλαμβάνει το μήκος της ουράς του επεξεργαστή, το μέσο μήκος της ουράς του επεξεργαστή, την χρησιμοποίηση του επεξεργαστή, την ποσότητα της μνήμης που είναι διαθέσιμη, τον κανονικοποιημένο χρόνο απόκρισης, το μήκος της ουράς για I/O όπως επίσης και συνδυασμούς των παραμέτρων αυτών [23][24]. Έχει βρεθεί ότι οι απλοί δείκτες φόρτου είναι πιο αποτελεσματικοί και επιβάλλουν μικρότερο overhead. Πιο συγκεκριμένα, οι συγγραφείς των [23] και [24] συγκρίνουν τους διάφορους μονοδιάστατους δείκτες φόρτου με κάποιους δείκτες που είναι γραμμικοί συνδυασμοί αυτών και συμπεραίνουν ότι το στιγμιαίο μήκος της ουράς του επεξεργαστή είναι ένας από τους πιο επαρκής δείκτες φόρτου. Η απόδοση του μπορεί να βελτιωθεί ομαλοποιώντας (smoothing) τον δείκτη με τον υπολογισμό του μέσου όρου του μήκους της ουράς για ένα χρονικό διάστημα. Η ομαλοποίηση είναι πολύ σημαντική όταν ο φόρτος στο σύστημα περιλαμβάνει έναν μεγάλο αριθμό από εργασίες μικρής διάρκειας (short-lived jobs). Το βέλτιστο χρονικό παράθυρο εξαρτάται φανερά από την δυναμική του φόρτου στο σύστημα και πρέπει να επιλεχθεί προσεκτικά ώστε να μην δίνει έμφαση σε χρονικά προηγούμενους φόρτους. Μερικά συστήματα, όπως το Utopia [25] και το Condor [26], χρησιμοποιούν πολλαπλούς δείκτες φόρτου για να πάρουν αποφάσεις διαμοιρασμού του φόρτου. Τα βέλτιστα thresholds εξαρτώνται επίσης από τα χαρακτηριστικά του φόρτου στο σύστημα καθώς και από τον αν εφαρμόζεται ομαλοποίηση του δείκτη φόρτου. Aν ο μέσος χρόνος εξυπηρέτησης των tasks είναι χαμηλός και οι ρυθμοί άφιξης υψηλοί, οι τιμές για το φυσιολογικό και το υπερφορτωμένο threshold θα είναι υψηλότερες από ότι στην περίπτωση όπου μέσος χρόνος εξυπηρέτησης είναι υψηλός και οι ρυθμοί - 12 -

Κεφάλαιο 1 Εισαγωγή άφιξης χαμηλοί. Στην τελευταία περίπτωση, φόρτος ίσος με ένα task μπορεί να θεωρηθεί φυσιολογικός και φόρτος ίσος με δύο tasks υπερφορτωμένος. 1.2.2 Επιμέρους Πολιτικές Τυπικά, μια πολιτική διαμοιρασμού του φόρτου αποτελείται από τέσσερις επιμέρους πολιτικές: την πολιτική πληροφόρησης (information policy), την πολιτική μεταφοράς (transfer policy), την πολιτική επιλογής (selection policy) και την πολιτική τοποθεσίας (location policy). Πολιτική Πληροφόρησης Συγκεντρώνει τις πληροφορίες για την κατάσταση του συστήματος, οι οποίες θα χρησιμοποιηθούν στις αποφάσεις εκχώρησης. Χρησιμοποιείται για την λήψη πιο αξιόπιστων αποφάσεων, παρ όλο που προκαλεί επίσης overhead στο σύστημα. Υπάρχουν τρία ζητήματα που σχετίζονται με την πολιτική πληροφόρησης: τι πληροφορία συγκεντρώνεται, καθώς και πού και πότε πρόκειται να συλλεχθεί η πληροφορία αυτή. Είναι επίσης υπεύθυνη για την διασπορά της πληροφορίας του φόρτου κάθε κόμβου. Σχετικές με την πολιτική πληροφόρησης είναι οι έννοιες του δείκτη φόρτου και των thresholds που περιγράψαμε προηγουμένως. Η πληροφορία μπορεί να συγκεντρωθεί σε έναν μόνο κόμβο σε ένα σύστημα όπου εφαρμόζονται κεντρικοί αλγόριθμοι για τον διαμοιρασμό του φόρτου, ή μπορεί να είναι συγκεντρωμένη ολικά ή μερικά σε κάθε κόμβο σε συστήματα που εφαρμόζονται κατανεμημένοι αλγόριθμοι. Η συλλογή της πληροφορίας μπορεί να είναι demand-driven, όπου κάθε κόμβος συλλέγει πληροφορίες για τους άλλους κόμβους μόνο όταν χρειάζεται, περιοδική όπου η πληροφορίες συλλέγονται περιοδικά, ή state-driven όπου οι κόμβοι διασπείρουν την πληροφορία της κατάστασης τους (overloaded, underloaded, mediumloaded) κάθε φορά που αλλάζουν οι καταστάσεις αυτές. Οι μηχανισμοί για την συλλογή πληροφοριών στην περίπτωση των demand-driven πολιτικών είναι η βολιδοσκόπηση (probing) και o broadcast μηχανισμός [27]. Σύμφωνα με την πρώτη κάθε κόμβος που θέλει να συμμετέχει σε μια μεταφορά tasks επιλέγει έναν κόμβο και ελέγχει αν μπορεί να συμμετέχει στην μεταφορά αυτή. Αν όχι η διαδικασία επαναλαμβάνεται μέχρι να βρεθεί επίσης κατάλληλος κόμβος ή μέχρι ο αριθμός των βολιδοσκοπήσεων να ξεπεράσει ένα όριο. - 13 -

Κεφάλαιο 1 Εισαγωγή Σύμφωνα με τον δεύτερο μηχανισμό ο κόμβος που επιθυμεί να συμμετέχει σε μια μεταφορά κάνει broadcast την κατάσταση του. Από επίσης κόμβους που απαντούν στο broadcast μήνυμα επιλέγεται ο κατάλληλος παραλήπτης/αποστολέας. Πολιτική μεταφοράς Καθορίζει πότε ένας κόμβος είναι κατάλληλος για την μετανάστευση ενός task είτε ως αποστολέας είτε ως παραλήπτης. Οι περισσότεροι αλγόριθμοι διαμοιρασμού φόρτου χρησιμοποιούν την πολιτική κατωφλίου (threshold policy) ως πολιτική μεταφοράς. Η πολιτική αυτή υποδεικνύει έναν κόμβο ως αποστολέα αν ο δείκτης φόρτου του κόμβου ξεπεράσει την τιμή επίσης κατωφλίου T 1 ή ως παραλήπτη αν ο φόρτος γίνει μικρότερος από μια τιμή T 2 ( T 1 > T 2 ) [28]. Μια άλλη πολιτική μεταφοράς είναι η σχετική πολιτική (relative policy) η οποία λαμβάνει υπόψη τον φόρτο του κόμβου σε σχέση με τον φόρτο στους άλλους κόμβους. Για παράδειγμα, ένας κόμβος μπορεί να είναι ένας κατάλληλος παραλήπτης αν ο φόρτος του είναι μικρότερος από τον φόρτο κάποιου άλλου κόμβου τουλάχιστον κατά μια ποσότητα Δ [28]. Πολιτική επιλογής - Μόλις η πολιτική μεταφοράς αποφασίσει ότι ένας κόμβος είναι αποστολέας, η πολιτική επιλογής επιλέγει ένα task από την ουρά του επεξεργαστή του για μεταφορά. Αν η πολιτική επιλογής αποτύχει να βρει ένα κατάλληλο task, o κόμβος αυτός παύει να θεωρείται αποστολέας. Στην πιο απλή περίπτωση της μηπροεκτοπιστικής μετανάστευσης μεταφέρονται μόνο tasks τα οποία δεν έχουν ξεκινήσει να εκτελούνται και συνήθως μεταφέρονται τα πιο πρόσφατα tasks που βρίσκονται στην ουρά. Στην περίπτωση της προεκτοπιστικής μετανάστευσης η πολιτική επιλογής πρέπει να επιλέξει tasks με μεγάλο χρόνο εξυπηρέτησης (longlived) έτσι ώστε το overhead της μεταφοράς να θεωρείται μικρό συγκριτικά με τον χρόνο αυτό. Πολιτική Θέσης Βρίσκει έναν κατάλληλο παραλήπτη/αποστολέα για τον κόμβο που έχει επιλεγεί ως πιθανός αποστολέας/παραλήπτης από την πολιτική μεταφοράς. Η πολιτική θέσης μπορεί να βασίζεται σε τυχαίες επιλογές παραληπτών/αποστολέων, σε κάποια πιθανοκρατικά σχήματα τα οποία διανέμουν τα tasks σύμφωνα με ένα σύνολο κανόνων (διανύσματα πιθανοτήτων), στην πληροφορία για την κατάσταση των κόμβων ή σε στοχαστικά μανθάνοντα αυτόματα τα οποία χρησιμοποιούν τόσο την πληροφορία για την κατάσταση του συστήματος όσο και διανύσματα πιθανοτήτων - 14 -

Κεφάλαιο 1 Εισαγωγή [29]. Οι έρευνες δείχνουν ότι οι πολιτικές θέσης που βασίζονται στην κατάσταση του συστήματος αποδίδουν σταθερά καλύτερα από επίσης αντίστοιχες πιθανοκρατικές πολιτικές. Στην περίπτωση που η πληροφορία για την κατάσταση του συστήματος είναι συγκεντρωμένη σε έναν κόμβο, χρησιμοποιείται μια κεντρική πολιτική θέσης σύμφωνα με την οποία ο κόμβος επίσης επιλέγει τον παραλήπτη/αποστολέα για τον αποστολέα/παραλήπτη που το ζητάει και ενημερώνει επίσης δύο κόμβους. Από την άλλη μεριά, όταν η πληροφορία είναι κατανεμημένη μερικώς ή ολικώς σε διάφορους κόμβους του συστήματος η επιλογή του κατάλληλου παραλήπτη/ αποστολέα γίνεται από τον ίδιο τον κόμβο που ζητάει την μεταφορά του task. Η πολιτικές θέσεις μπορούν να ταξινομηθούν σε δύο βασικές κλάσεις: senderinitiated και receiver-initated. Στις sender-initiated, οι υπερφορτωμένοι κόμβοι προσπαθούν να μεταφέρουν tasks στους λιγότερο φορτωμένους κόμβους. Στις receiver-initiated οι λιγότερο φορτωμένοι κόμβοι ψάχνουν για υπερφορτωμένους κόμβους από τους οποίους θα μπορούσαν να μεταφέρουν tasks. Οι συγγραφείς του [2] δείχνουν όταν χρησιμοποιείται η πολιτική χρονοπρογραμματισμού FCFS, οι sender-initiated πολιτικές αποδίδουν καλύτερα για μέτριο φόρτο στο σύστημα. Αυτό συμβαίνει επειδή η πιθανότητα να βρεθεί επίσης ελαφρά φορτωμένος κόμβος είναι μεγαλύτερη από ότι να βρεθεί επίσης υπερφορτωμένος κόμβος. Σε υψηλούς φόρτους επίσης, ισχύει το αντίθετο και οι reveiver-initiated πολιτικές αποδίδουν καλύτερα. Έχουν προταθεί επίσης πολιτικές που συνδυάζουν τα καλά χαρακτηριστικά των δύο κατηγοριών [3][31]. 1.2.3 Παραδείγματα Πολιτικών Την τελευταία δεκαετία έχουν προταθεί πολλές πολιτικές για διαμοιρασμό φόρτου. Στην ενότητα περιγράφουμε ενδεικτικά κάποιες βασικές πολιτικές που αποτελούν την βάση άλλων πιο πολύπλοκων αλγορίθμων διαμοιρασμού φόρτου. Οι πολιτικές αυτές συνδυάζουν ταυτόχρονα τις πολιτικές πληροφόρησης και τοποθεσίας, οι οποίες αποτελούν το πιο σημαντικό τμήμα ενός αλγορίθμου διαμοιρασμού φόρτου. Random Είναι ο πιο απλός αλγόριθμος διαμοιρασμού φόρτου καθώς δεν χρησιμοποιεί καμιά πληροφορία για τον φόρτο των άλλων κόμβων. Όταν αποφασιστεί ότι πρέπει να γίνει μεταφορά ενός task, το επιθυμητό task - 15 -

Κεφάλαιο 1 Εισαγωγή μεταφέρεται σε έναν τυχαία επιλεγμένο κόμβο. Ο Random έχει μελετηθεί στα [32] και [33], και παρουσιάζει πολύ καλή βελτίωση στην απόδοση του συστήματος για χαμηλούς και μέτριους φόρτους στο σύστημα. Οι συγγραφείς του [32] εισήγαγαν ένα όριο μεταφοράς L t το οποίο παρέχει ένα όριο στο πόσες φορές μπορεί να μεταφερθεί ένα task και αποτρέπει τυχόν αστάθειες. Cyclic Σύμφωνα με τον αλγόριθμο αυτό τα tasks μεταφέρονται στους απομακρυσμένους επεξεργαστές με κυκλικό τρόπο. Η μόνη πληροφορία που πρέπει να αποθηκευτεί είναι το αναγνωριστικό του τελευταίου κόμβου στον οποίο στάλθηκε το task. Η προσομοίωση ενός τέτοιου αλγορίθμου έδειξε μια μικρή βελτίωση συγκριτικά με τον Random [28]. Threshold Ο αλγόριθμος αυτός χρησιμοποιεί την τεχνική της βολιδοσκόπησης. Όταν πρέπει να γίνει μια μεταφορά, ένας τυχαία επιλεγμένος κόμβος διερωτάται για το τον φόρτο του. Αν ο φόρτος είναι μικρότερος από ένα κατώφλι T, το task μεταφέρεται σε αυτόν. Αλλιώς, η διαδικασία επαναλαμβάνεται σε άλλο κόμβο. Αν δεν βρεθεί κάποιος κατάλληλος παραλήπτης μετά από L p προσπάθειες, το task εκτελείται τοπικά. Least Είναι μια παραλλαγή του Threshold, όπου συστηματικά βολιδοσκοπούνται L p κόμβοι και ο κόμβος με τον μικρότερο φόρτο επιλέγεται ως ο παραλήπτης του task. Οι δύο αυτοί αλγόριθμοι παρουσιάζουν πολύ καλή απόδοση σε σχέση με την απλότητα τους [28]. Επίσης οι δείκτες φόρτου που χρησιμοποιούν είναι πάντα ενημερωμένοι και έτσι είναι απίθανο να συμβεί μια λανθασμένη επιλογή παραλήπτη. Η επίδραση των τιμών T και L p μελετάται στα [32] και [33]. Reception [27][2] Είναι παρόμοιος με τον Threshold, αλλά οδηγείται από τους διαθέσιμους και όχι από τους υπερφορτωμένους κόμβους. Όταν ο φόρτος ενός κόμβος πέσει κάτω από ένα κατώφλι, ο κόμβος αυτός προσπαθεί να βρει έναν υπερφορτωμένο κόμβο με τυχαία βολιδοσκόπηση. Central Όταν ένας υπερφορτωμένος κόμβος επιθυμεί να μεταφέρει ένα task, ζητάει από έναν κεντρικό εξυπηρέτη να τον πληροφορήσει σχετικά με κάποιον μη φορτωμένο κόμβο, αν υπάρχει. Ο κεντρικός εξυπηρέτης ενημερώνεται για την διαθεσιμότητα των κόμβων μέσω μηνυμάτων που - 16 -

Κεφάλαιο 1 Εισαγωγή στέλνονται σε αυτόν από κάθε κόμβο του συστήματος. Έχουν προταθεί διάφορες παραλλαγές του Central: κάθε κόμβος στέλνει είτε περιοδικά την πληροφορία για τον φόρτο του [34] είτε μόνο όταν ο φόρτος έχει αλλάξει σημαντικά κατά μια ποσότητα [35]. Με παρόμοιο τρόπο ο Central μπορεί να υλοποιηθεί και ως reveiver-initiated αλγόριθμος όπου οι μη-φορτωμένοι κόμβοι ζητούν από τον κεντρικό εξυπηρέτη να τους πληροφορήσει σχετικά με τους υπερφορτωμένους κόμβους του συστήματος. Υπάρχουν δύο πιθανά μειονεκτήματα σχετικά με τις κεντρικούς αλγορίθμους διαμοιρασμού φόρτου: α) Ο κεντρικός εξυπηρέτης μπορεί να είναι ένα σημείο συμφόρησης και επομένως καθυστέρησης, β) μια βλάβη στον εξυπηρέτη καθιστά αδύνατο τον διαμοιρασμό του φόρτου και ο απαραίτητος χρόνος για επιδιόρθωση μπορεί να είναι μεγάλος [18]. Global [23][33] Στον Global η συγκέντρωση της πληροφορίας είναι κεντρική και η χρήση της (απόφαση μεταφοράς) κατανεμημένη. Ο εξυπηρέτης εκπέμπει (broadcast) περιοδικά το διάνυσμα του φόρτου του συστήματος. Με τον τρόπο αυτό ένας υπερφορτωμένος κόμβος βρίσκει τον λιγότερο φορτωμένο κόμβο βασισμένος στο δικό του διάνυσμα χωρίς να χρειάζεται να ρωτήσει τον εξυπηρέτη. Στην έκδοση που μελετάται στο [33] επιλέγεται για παραλήπτης του task που πρόκειται να μεταφερθεί ένας κόμβος του οποίου ο φόρτος είναι μικρότερος από του αποστολέα τουλάχιστον κατά μια ποσότητα Δ. Αν πολλοί κόμβοι έχουν τον ίδιο χαμηλό φόρτο επιλέγεται ένας από αυτούς τυχαία. Ο αλγόριθμος αυτός είναι πιο αποδοτικός από τον Central, γιατί περιλαμβάνει μικρότερο αριθμό μηνυμάτων. Επίσης είναι πιο σταθερός καθώς κατά την διάρκεια επιδιόρθωσης του εξυπηρέτη η δυνατότητα διαμοιρασμού του φόρτου είναι ακόμη διαθέσιμη, έστω και με τις παλιές τιμές φόρτου. Request [29][35] Στον αλγόριθμο αυτό η συγκέντρωση της πληροφορίας είναι κατανεμημένη και η χρήση της (απόφαση μεταφοράς) επίσης κατανεμημένη. O Request είναι παρόμοιος με τον Least, με την διαφορά ότι βολιδοσκοπούνται όλοι οι κόμβοι του συστήματος και ότι η βολιδοσκόπηση γίνεται με ένα broadcast μήνυμα. Η κλιμάκωση ενός τέτοιου συστήματος είναι μόλις υποφερτή. Επιπλέον, μπορούν να συμβούν υπερχειλίσεις των buffers αν παραληφθεί ταυτόχρονα ένας μεγάλος αριθμός απαντήσεων. Οι συγγραφείς - 17 -

Κεφάλαιο 1 Εισαγωγή του [35] προτείνουν μια παραλλαγή του όπου μόνο οι κόμβοι με εύλογο φόρτο απαντούν στα μηνύματα αυτά και η απάντηση καθυστερείται για ένα μικρό χρονικό διάστημα που αυξάνεται όσο αυξάνεται ο τοπικός φόρτος, έτσι ώστε οι πρώτες απαντήσεις που θα φτάσουν στον αποστολέα να είναι πιθανόν και οι πιο ενδιαφέρουσες. Στην περίπτωση αυτή ο Request αποδίδει παρόμοια με τον Central [18]. - 18 -

Κεφάλαιο 1 Εισαγωγή 1.3 Χρονοπρογραμματισμός σε Clusters Η αυξημένη απόδοση και το μειωμένο κόστος των εμπορικών δικτυακών προϊόντων καθιστά τα clusters ελκυστικές πλατφόρμες για υψηλή υπολογιστική ισχύ. Μεγάλα clusters έχουν αναπτυχθεί για την υποστήριξη εφαρμογών με υψηλές υπολογιστικές απαιτήσεις, και επομένως ο χρονοπρογραμματισμός και η διαχείριση των πόρων των clusters είναι απαραίτητος. Τα clusters είναι αναμφισβήτητα σήμερα είναι η πιο κατάλληλη πλατφόρμα για τις περισσότερες επιστημονικές, εμπορικές και βιομηχανικές εφαρμογές. Είναι δημοφιλή για πολλούς λόγους: η μεγάλη αποδοτικότητα κόστους, η μεγάλη διαθεσιμότητα έτοιμου υλικού και λογισμικού, η ευκολία εγκατάστασης και προσαρμογής, η υιοθέτηση τυπικών πρακτικών και η ολοένα αυξανόμενη κοινότητα χρηστών. Υπάρχει ήδη μια αρκετά μεγάλη έρευνα σχετικά με τον χρονοπρογραμματισμό στα clusters. Μερικά παραδείγματα περιγράφονται στην ενότητα αυτή [1][2][39]. Ο συγγραφέας του [36] μελετά την απόδοση μιας ιεραρχικής πολιτικής χρονοπρογραμματισμού για συστήματα clusters, η οποία περιλαμβάνει ένα στοιχείο διαμοιρασμού φόρτου για να αντιμετωπίσει τις τοπικές διακυμάνσεις του φόρτου. Επίσης, οι συγγραφείς του [37] μελετούν πολιτικές διαμοιρασμού του φόρτου για fine-grain δικτυακές υπηρεσίες. Οι fine-grain υπηρεσίες εισάγουν επιπλέον προκλήσεις σε σύγκριση με τις coarse-grain υπηρεσίες, επειδή η κατάσταση του συστήματος μεταβάλλεται γρήγορα στην πρώτη περίπτωση και η απόδοση του είναι εξαιρετικά ευαίσθητη στα διάφορα overheads. Οι συγγραφείς συμπεραίνουν ότι α) οι πολιτικές που βασίζονται στην τυχαία βολιδοσκόπηση αποδίδουν καλύτερα για finegrain υπηρεσίες, β) ένα μικρός αριθμός βολιδοσκοπήσεων παρέχει αρκετή πληροφορία για τον διαμοιρασμό του φόρτου, ενώ ένας εξαιρετικά μεγάλος αριθμός βολιδοσκοπήσεων μπορεί να μειώσει την απόδοση λόγω του αυξημένου overhead, και γ) η απόρριψη των καθυστερημένων απαντήσεων μπορεί να βελτιώσει περαιτέρω την απόδοση του συστήματος. Ένας πιθανός τρόπος για τον αποτελεσματικό χρονοπρογραμματισμό παράλληλων εργασιών σε ένα σύστημα πολλαπλών clusters (multi-cluster) είναι να εφαρμοστεί η τεχνική του co-allocation. Αντί να γίνεται τοπικός χρονοπρογραμματισμός των εργασιών στο cluster στο οποίο έχουν υποβληθεί αρχικά, τα tasks των παράλληλων εργασιών χρονοπρογραμματίζονται σε διαφορετικά clusters. Παρ όλο - 19 -

Κεφάλαιο 1 Εισαγωγή που μια τέτοια απόφαση θα οδηγήσει σε μεγαλύτερες καθυστερήσεις για την εργασία, καθώς η επικοινωνία μεταξύ των clusters (inter-cluster) είναι πιο αργή από ότι η επικοινωνία μεταξύ των κόμβων του ίδιου τοπικού cluster, η εργασία μπορεί να έχει το πλεονέκτημα ότι θα ξεκινήσει να εκτελείται νωρίτερα. Οι συγγραφείς του [38] δείχνουν ότι η τεχνική του co-allocation μπορεί να είναι επικερδής ακόμα και όταν η ταχύτητα επικοινωνίας μεταξύ των clusters είναι αρκετά χαμηλή σε σύγκριση με την ταχύτητα επικοινωνίας μεταξύ των κόμβων ενός cluster. Στόχος της συγκεκριμένης εργασίας είναι να μελετήσει την απόδοση και την συμπεριφορά ενός συστήματος δύο clusters στο οποίο εφαρμόζονται διαφορετικές πολιτικές ανάθεσης των tasks στους επεξεργαστές κάθε cluster, ενώ παράλληλα εφαρμόζεται μια πολιτική διαμοιρασμού του φόρτου στο σύστημα που έχει ως στόχο την εξισορρόπηση του φόρτου τόσο εσωτερικά σε κάθε cluster όσο και μεταξύ των δύο clusters. Έτσι tasks που ανήκουν στον τοπικό φόρτο ενός cluster μπορούν να μεταναστεύουν σε επεξεργαστές τόσο του ίδιου όσο και του απομακρυσμένου cluster ώστε να ξεκινήσουν να εκτελούνται νωρίτερα. Στο επόμενο κεφάλαιο περιγράφεται αναλυτικά το μοντέλο το συστήματος καθώς επίσης και οι διάφορες πολιτικές που μελετώνται. - 2 -

2. Μοντέλο προσομοίωσης και πειραματική μεθοδολογία 2.1 Σύστημα και μοντέλα φόρτου εργασιών Θεωρούμε ένα μοντέλο ανοιχτού δικτύου ουρών ενός συστήματος κατανεμημένων εξυπηρετών [6][39][4][41]. Οι όροι εξυπηρέτες και επεξεργαστές χρησιμοποιούνται εναλλάξ στην παρούσα εργασία. Το σύστημα αποτελείται από δυο ομάδες (clusters) P ανεξάρτητων και ομοιογενών επεξεργαστών, όπου ο καθένας εξυπηρετεί την δική του ουρά. Ένα δίκτυο υψηλής ταχύτητας συνδέει τους κατανεμημένους κόμβους με αμελητέες καθυστερήσεις επικοινωνίας. Το σύστημα εξετάζεται για P = 16 επεξεργαστές, το οποίο είναι λογικό για τα υπάρχοντα μεσαίαςκλίμακας δίκτυα σταθμών εργασίας. Στο σύστημα υπάρχουν δύο ανεξάρτητα ρεύματα αφίξεως, ένα για κάθε cluster. Κάθε ρεύμα καταλήγει σε έναν διανεμητή (dispatcher), ο οποίος εκτελεί την λειτουργία ανάθεσης των εργασιών (jobs) στις ουρές του αντίστοιχου cluster με βάση κάποια πολιτική δρομολόγησης. μ μ 1 2 λ 1 D.. μ P D: Task Dispatcher μ μ 1 2 λ 2 D.. μ P Εικόνα 2.1. Το μοντέλο δικτύου ουρών - 21 -

Κεφάλαιο 2 Μοντέλο προσομοίωσης και πειραματική μεθοδολογία Θεωρούμε ότι οι εργασίες διαιρούνται σε ανεξάρτητα tasks τα οποία μπορούν να εκτελεστούν παράλληλα, οποιαδήποτε χρονική στιγμή, με οποιαδήποτε σειρά και σε οποιονδήποτε επεξεργαστή. Ο αριθμός των tasks από τα οποία αποτελείται μια εργασία ορίζει τον βαθμό παραλληλισμού της εργασίας αυτής. Μια εργασία ολοκληρώνεται όταν εκτελεστούν όλα τα tasks της, απαιτείται επομένως συγχρονισμός μεταξύ των tasks. Έτσι, το κόστος του αυξημένου παραλληλισμού είναι οι καθυστερήσεις συγχρονισμού που συμβαίνουν όταν τα tasks περιμένουν για την ολοκλήρωση των συγγενικών τους tasks. Ο αριθμός των tasks μιας εργασίας x εκφράζεται ως tx ( ). Αν το px ( ) εκφράζει τον αριθμό των επεξεργαστών που απαιτούνται από την εργασία x, τότε ισχύει η παρακάτω σχέση: px ( ) tx ( ) P Η διαίσθηση και η εμπειρία δείχνει ότι η καλύτερη απόδοση του συστήματος μπορεί να επιτευχθεί μέσω μιας ισορροπημένης χρησιμοποίησης των διαθέσιμων πόρων, έτσι ώστε να αποφεύγεται η υπερφόρτωση ή υπο-χρησιμοποίηση μερικών πόρων. Είναι εύλογο να θεωρούμε ότι μια βέλτιστη πολιτική εξισορρόπησης του φόρτου θα προσπαθεί να εξισώσει την χρησιμοποίηση των επεξεργαστών. Οι πολιτικές ανάθεσης των tasks που εξετάζονται στο σύστημα είναι πιθανοκρατικές, ντετερμινιστικές και δυναμικές. Στην δυναμική περίπτωση, εφαρμόζεται η πολιτική της μετανάστευσης των tasks. Σύμφωνα με την πολιτική αυτή, όταν ένας επεξεργαστής γίνει ανενεργός μεταφέρεται ένα μεταναστεύσιμο task από την ουρά του πιο φορτωμένου επεξεργαστή του τοπικού ή του απομακρυσμένου cluster. Λεπτομερής περιγραφή για την πολιτική της μετανάστευσης δίνεται παρακάτω. Η πολιτική αυτή αποτελεί μια προσαρμοστική μέθοδο διαμοιρασμού του φόρτου, η οποία είναι προσανατολισμένη στον παραλήπτη (receiver-initiated) και έχει ως στόχο να εξισώσει την χρησιμοποίηση μεταξύ των επεξεργαστών ενός cluster αλλά και την χρησιμοποίηση μεταξύ των δύο cluster. Έτσι, tasks τα οποία ανήκουν στο πρώτο ρεύμα άφιξης μπορούν να εκτελεστούν από επεξεργαστές του δεύτερου cluster και αντίστροφα. Στο σύστημα επιτρέπονται μόνο μεταναστεύσεις tasks των οποίων η εκτέλεση δεν έχει ξεκινήσει. Δεν είναι επιθυμητή η μεταφορά tasks τα οποία έχουν ξεκινήσει να εκτελούνται λόγω θεμάτων πολυπλοκότητας που αναφέραμε στην Ενότητα 1.2. - 22 -

Κεφάλαιο 2 Μοντέλο προσομοίωσης και πειραματική μεθοδολογία Ένα προφανές μειονέκτημα της προεκτοπιστικής μετανάστευσης είναι η απαίτηση για μεταφορά της μνήμης που σχετίζεται με την διεργασία που μεταναστεύει. Έτσι, το κόστος της μετανάστευσης για τις ενεργές διεργασίες μπορεί να είναι μεγαλύτερο από το κόστος της απομακρυσμένης εκτέλεσης. Όταν ένα task μεταφέρεται από ένα επεξεργαστή σε έναν άλλο επιφέρει κάποιο κόστος επικοινωνίας. Θεωρούμε ότι το κόστος επικοινωνίας για τοπικές μεταναστεύσεις είναι μικρότερο από το κόστος για τις απομακρυσμένες μεταναστεύσεις. Θεωρούμε επίσης ότι αυτό το μέσο κόστος μεταφοράς των tasks είναι σχετικά μικρό, αλλά όχι αμελητέο, σε σύγκριση με το μέσο κόστος επεξεργασίας των tasks. Ο φόρτος εργασίας του συστήματος που εξετάζουμε χαρακτηρίζεται από τις εξής παραμέτρους: Την κατανομή του αριθμού των tasks από τα οποία αποτελείται ένα job. Την κατανομή των αφίξεων των εργασιών στο σύστημα. Την κατανομή του χρόνου εξυπηρέτησης των tasks. Την κατανομή του overhead των τοπικών και των απομακρυσμένων μεταναστεύσεων. Θεωρούμε ότι δεν υπάρχει κανένας συσχετισμός μεταξύ των διαφόρων παραμέτρων. Για παράδειγμα, μια εργασία που αποτελείται από μικρό αριθμό tasks μπορεί να έχει μεγαλύτερο χρόνο εκτέλεσης. Κατανομή του μεγέθους των εργασιών Όπως αναφέρθηκε και προηγουμένως, κάθε εργασία αποτελείται από μια ομάδα από n 1 tasks τα οποία μπορούν να εκτελεστούν παράλληλα. Ο αριθμός των tasks καθορίζει τον βαθμό παραλληλισμού της εργασίας. Θεωρούμε ότι τα tasks κατανέμονται ομοιόμορφα στην περιοχή [1 P]. Επιλέξαμε την ομοιόμορφη κατανομή επειδή είναι μια από τις κατανομές που χρησιμοποιούνται σε μοντέλα αυτού του τύπου. Ο μέσος αριθμός των tasks για κάθε εργασία είναι ίσος με η = (1+P) / 2. - 23 -