«ΑΛΓΟΡΙΘΜΟΙ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΓΙΑ ΤΗΝ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΤΗΣ ΚΑΤΑΝΑΛΙΣΚΟΜΕΝΗΣ ΕΝΕΡΓΕΙΑΣ ΣΕ ΦΟΡΗΤΕΣ ΣΥΣΚΕΥΕΣ»

Σχετικά έγγραφα
Ελαχιστοποίηση της Καταναλισκόμενης Ενέργειας σε Φορητές Συσκευές

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

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

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

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

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

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού...

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

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

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

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

Δομή Ηλεκτρονικού υπολογιστή

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

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

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Εφαρμοσμένη Βελτιστοποίηση

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Εργαστηριακή άσκηση. Θεωρητικός και πρακτικός υπολογισμός καθυστερήσεων σε αναστροφείς CMOS VLSI

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

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

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

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Διαχείριση Ηλεκτρικής Ενέργειας Οικονομική Κατανομή Παραγόμενης Ενέργειας

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Περίληψη ιπλωµατικής Εργασίας

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

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

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

Δυαδικό Σύστημα Αρίθμησης

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Λειτουργικά συστήματα πραγματικού χρόνου

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

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

Τυπικά θέματα εξετάσεων. ΠΡΟΣΟΧΗ: Οι ερωτήσεις που παρατίθενται ΔΕΝ καλύπτουν την πλήρη ύλη του μαθήματος και παρέχονται απλά ενδεικτικά

9. Συστολικές Συστοιχίες Επεξεργαστών

Υπολογιστικές Μέθοδοι στις Κατασκευές

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Αλγοριθμικές Τεχνικές

On line αλγόριθμοι δρομολόγησης για στοχαστικά δίκτυα σε πραγματικό χρόνο

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

[Υπόδειξη: Τα αγαθά που χάνουν την υλική τους υπόσταση και τις ιδιότητες τους μετά την πρώτη χρήση τους ονομάζονται καταναλωτά.]

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

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

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

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

ΤΙΤΛΟΣ ΑΝΑΦΟΡΑΣ: ΕΦΑΡΜΟΓΗ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΑ ΣΕ ΕΠΙΛΕΓΜΕΝΕΣ ΠΕΡΙΤΠΩΣΕΙΣ

Εφαρμογές Προσομοίωσης

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

ΑΕΠΠ Ερωτήσεις θεωρίας

Ε ανάληψη. Α ληροφόρητη αναζήτηση

Ασύρματος αυτοματισμός σε συρόμενη καγκελόπορτα που ελέγχεται από PLC.

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Προγραμματισμός Η/Υ. Λογισμικό. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

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

Εισαγωγή στην Αρχιτεκτονική Η/Υ

Αρχιτεκτονική Υπολογιστών

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

Ανάλυση Χρόνου, Πόρων & Κόστους

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

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

2. ΣΥΓΚΕΝΤΡΩΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΑΡΑΓΩΓΗΣ

Transcript:

«ΑΛΓΟΡΙΘΜΟΙ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΓΙΑ ΤΗΝ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΤΗΣ ΚΑΤΑΝΑΛΙΣΚΟΜΕΝΗΣ ΕΝΕΡΓΕΙΑΣ ΣΕ ΦΟΡΗΤΕΣ ΣΥΣΚΕΥΕΣ» Βασίλης Βλάχος vasilis@eltrun.gr Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας Πατησίων 76, 104 34 Αθήνα Τηλ.: +30 210 8203370, Fax: +30 210 8203664 Περίληψη: Η εξέλιξη της τεχνολογίας τα τελευταία χρόνια έχει επιτρέψει την δημιουργία μιας νέας γενιάς προηγμένων ηλεκτρονικών συσκευών. Κύρια χαρακτηριστικά αυτής της κατηγορίας συσκευών είναι ότι διαθέτουν ελάχιστο όγκο και βάρος, ενσωματώνουν ισχυρότατους επεξεργαστές και υποσυστήματα, ενώ μεταφέρονται ιδιαίτερα εύκολα. Ιδιαίτερα σημαντικό πρόβλημα αυτής της κατηγόριας συσκευών αποτελεί η περιορισμένη αυτονομία τους. Στα πλαίσια αυτής της εργασίας προτείνουμε αλγορίθμους χρονοπρογραμματισμού διεργασιών για την ελαχιστοποίηση της καταναλισκόμενης ενέργειας. Λέξεις-Κλειδιά: Χαμηλής Κατανάλωσης Υπολογιστικά Συστήματα, Συστήματα Πραγματικού Χρόνου, Ενσωματωμένα Συστήματα

1 Εισαγωγή Η εξέλιξη της τεχνολογίας τα τελευταία χρόνια έχει επιτρέψει την δημιουργία μιας νέας γενιάς προηγμένων ηλεκτρονικών συσκευών. Κύρια χαρακτηριστικά αυτής της κατηγορίας συσκευών είναι ότι διαθέτουν ελάχιστο όγκο και βάρος, ενσωματώνουν ισχυρότατους επεξεργαστές και υποσυστήματα, ενώ μεταφέρονται ιδιαίτερα εύκολα. Οι συσκευές αυτές καλύπτουν ένα ευρύτατο φάσμα των ανθρώπινων δραστηριοτήτων, αφού έχουν καταστεί αναπόσπαστο τμήμα της καθημερινότητας. Το κινητό τηλέφωνο, οι φορητοί υπολογιστές, οι φορητές τηλεοράσεις καθώς και οι συσκευές αναπαραγωγής κωδικοποιημένης (συνήθως με βάση το πρότυπο MP3) ή μη μουσικής είναι ελάχιστα μόνο παραδείγματα τέτοιων εξελιγμένων συσκευών που χρησιμοποιούνται σχεδόν καθολικά. Είναι ιδιαίτερα σημαντικό να γίνει κατανοητό ότι τα προηγούμενα παραδείγματα αποτελούν ένα μικρό μόνο υποσύνολο των συστημάτων που αναπτύσσονται και θα διατεθούν στο ευρύ κοινό τα επόμενα χρόνια. Πέρα από την ενσωμάτωση νέων λειτουργιών στα υπάρχοντα συστήματα, όπως για παράδειγμα η αναπαραγωγή video από τα κινητά τηλέφωνα, αναμένονται εντελώς νέες πρωτοποριακές κατασκευές με υπολογιστές που θα έχουν την δυνατότητα να φοριούνται από τον κάτοχο τους και να επιτελούν πλήθος ανέφικτων μέχρι σήμερα λειτουργιών. Τέτοιες λειτουργίες μπορεί να είναι από την παρακολούθηση της υγείας του κατόχου της συσκευής μέχρι και εφαρμογές αυτόματων μεταφραστών σε πραγματικό χρόνο. Το συμπέρασμα το οποίο αβίαστα προκύπτει είναι ότι αν έως τώρα η εξάπλωση τέτοιων συστημάτων ήταν ραγδαία, τα επόμενα χρόνια θα είναι καταιγιστική. Από τεχνικής πλευράς η σχεδίαση τέτοιων συστημάτων αποτελεί μεγάλη πρόκληση. Οι εφαρμογές που αναφέρθηκαν παραπάνω απαιτούν ισχυρότατους επεξεργαστές, ταχύτατες και μεγάλου μεγέθους μνήμες καθώς και διάφορα άλλα υποσυστήματα τα οποία σχετίζονται άμεσα με το είδος των εφαρμογών που εκτελούνται. Οι συσκευές αυτές στην συντριπτική τους πλειοψηφία είναι μικρών διαστάσεων, φορητές ενώ πραγματοποιούν μια ή περισσότερες συγκεκριμένες λειτουργίες. Θα αναφερόμαστε εφ εξής σε αυτά τα συστήματα ως ενσωματωμένα συστήματα (embedded systems). Οι εξελίξεις στην περιοχή της ολοκλήρωσης κυκλωμάτων επιτρέπουν την κατασκευή επεξεργαστών πολλών δεκάδων εκατομμυρίων τρανζίστορ ανοίγοντας νέες προοπτικές στους μηχανικούς που σχεδιάζουν τέτοια συστήματα. Η τάση που επικρατεί πλέον σε αυτό το χώρο υπαγορεύει την ενσωμάτωση ενός ή συνήθως περισσότερων επεξεργαστών, μνήμης καθώς και των υπόλοιπων υποσυστημάτων σε ένα μόνο ολοκληρωμένο κύκλωμα (chip) και περιγράφεται χαρακτηριστικά με τον όρο Σύστημα Σε Ολοκληρωμένο Κύκλωμα (System On Chip ή εν συντομία SoC). Το μεγαλύτερο πρόβλημα που έχει ανακύψει στο χώρο το ενσωματωμένων συστημάτων σχετίζεται με την κατανάλωση ενέργειας. Αναφέρθηκε παραπάνω ότι η χρησιμοποίηση ισχυρότατων επεξεργαστών είναι απαραίτητη προκείμενου να ικανοποιηθούν οι απαιτήσεις των πολύπλοκων εφαρμογών. Επιπλέον επειδή τα συστήματα αυτά εμπεριέχονται σε φορητές συσκευές επιτάσσουν την ανάπτυξη μεθοδολογιών για την μεγιστοποίηση της αυτονομίας τους, δηλαδή της λειτουργίας τους χωρίς την παροχή εξωτερικής τροφοδοσίας.

Στα πλαίσια αυτής της εργασίας θα παρουσιαστούν συνοπτικά οι διάφορες μεθοδολογίες για την ανάπτυξη ή μετατροπή λογισμικού προκειμένου να ελαχιστοποιηθεί η καταναλισκόμενη ενέργεια του συστήματος και θα προταθεί ένας βελτιωμένος αλγόριθμος χρονοπρογραμματισμού (scheduling) των διαφόρων διεργασιών λαμβάνοντας υπόψη και την ενεργειακή κατανάλωση τους. Ο προτεινόμενος αλγόριθμος συμπεριφέρεται σαφώς καλύτερα από του προϋπάρχοντες γενετικούς και ευρετικούς αλγορίθμους. 2 Σχετικές Έρευνες H ελαχιστοποίηση της καταναλισκόμενης ενέργειας μπορεί να επιτευχθεί τόσο μέσω των εξελίξεων στην περιοχή του υλικού, όσο και μέσω των κατάλληλων μετατροπών του εκτελούμενου λογισμικού. Συγκεκριμένα η αύξηση του βαθμού ολοκλήρωσης επιτρέπει την κατασκευή τρανζίστορ μεγέθους 0.09 μm. Τα τρανζίστορ αυτά σαφώς καταναλώνουν σημαντικότερα λιγότερη ενέργεια. Ο νόμος του Moore ορίζει ότι κάθε 18 μήνες η υπολογιστική ισχύς των επεξεργαστών διπλασιάζετε, κάτι που θα μπορούσε να ερμηνευθεί ως ότι η κατασκευή μικρότερου μεγέθους τρανζίστορ κινείται εντός αυτών των χρονικών πλαισίων. Επιπλέον η έρευνα που πραγματοποιείται στο επίπεδο της ατομικής φυσικής έχει οδηγήσει στην παραγωγή υλικών που συμπεριφέρονται πολύ καλύτερα όταν χρησιμοποιούνται στην κατασκευή ολοκληρωμένων κυκλωμάτων. Επιπρόσθετα σημαντικές είναι και οι βελτιώσεις που εφαρμόζονται στην κατασκευή μπαταριών προσφέροντας μεγαλύτερη αυτονομία. Οι προσεγγίσεις αυτές παρ ότι δίνουν ενθαρρυντικά αποτελέσματα προσκρούουν σε ορισμένα εμπόδια τα οποία δύσκολα θα μπορέσουν να υπερπηδηθούν ώστε να θεωρηθεί ότι είναι εφικτός ο πολλαπλασιασμός της χωρητικότητας τους μέσα στο προσεχές μέλλον. Η πλέον σύγχρονη αντιμετώπιση του προβλήματος της ελαχιστοποίησης της ενέργειας βασίζεται στην άποψη ότι μετατρέποντας το υπάρχον λογισμικό είναι δυνατόν να μειωθεί η κατανάλωση της ενέργείας κατά αρκετές τάξεις μεγέθους. 3 Μεθοδολογία Ταυτόχρονης Διαχείρισης Διεργασιών Προκειμένου να γίνει κατανοητή η μεθοδολογία Ταυτόχρονης Διαχείρισης Διεργασιών κρίνεται σκόπιμο να δοθεί συγκεντρωτικά ο ορισμός κάποιων βασικών εννοιών προκειμένου να είναι απόλυτα κατανοητή η περιγραφή της μεθοδολογίας που θα ακολουθήσει. Μη ντετερμινισμός είναι η κατάσταση κατά την οποία η συμπεριφορά του συστήματος, όπως για παράδειγμα ή καθυστέρηση ή ο χρόνος εκτέλεσης κάποιων διεργασιών, είναι δυνατόν να ποικίλει ακόμα και με την ίδια είσοδο. Οι διακόπτες (interrupts) είναι σε θέση να προκαλέσουν μη ντετερμινισμό. Καμπύλη Pareto είναι ένα σύνολο από βέλτιστα σημεία Pareto. Κάθε σημείο αναπαριστά μια βέλτιστη λύση σε τουλάχιστον έναν από τους δύο άξονες. Συγκεκριμένα στην μεθοδολογία Ταυτόχρονης Διαχείρισης Διεργασιών ΤΔΔ (Task Concurrency Management - TCM) ένα σημείο Pareto αναπαριστά το σχήμα χρονοπρογραμματισμού με την ελάχιστη ενεργειακή κατανάλωση στο δεδομένο διαθέσιμο χρονικό απόθεμα ή αντίστροφα το σχήμα με την ταχύτατη χρονική απόκριση στο διαθέσιμο ενεργειακό απόθεμα. Νήμα (thread) είναι ένα σύνολο από πλαίσια νημάτων (thread frames). Ένα ανεξάρτητο τμήμα κώδικα τα οποίο επιτελεί μια συγκεκριμένη λειτουργία.

Πλαίσιο νήματος (thread frame) είναι μια ομάδα από κόμβους νημάτων (thread nodes). Εξ ορισμού, μη ντετερμινιστική συμπεριφορά είναι δυνατόν να υπάρξει μόνο εντός των πλαισίων νημάτων (thread frames). Ο χρονοπρογραμματιστής κατά την διάρκεια του σχεδιασμού (design-time scheduler) ενεργεί εσωτερικά των πλαισίων νημάτων, ενώ ο χρονοπρογραμματιστής κατά την διάρκεια της εκτέλεσης (run-time scheduler) αντιμετωπίζει τα πλαίσια νημάτων ως τις ελάχιστες οντότητες στις οποίες είναι δυνατόν να πραγματοποιηθεί χρονοπρογραμματισμός. Κόμβος νήματος (thread node) είναι η ελάχιστη οντότητα στην οποία επιχειρεί ο χρονοπρογραμματιστής κατά την διάρκεια του σχεδιασμού, η οποία αποτελείται από κόμβους και τόξα ενός γράφου ελέγχου ροής δεδομένων ΓΕΡΔ (control-dataflow graph CDFG). Όταν ένας ή περισσότεροι επεξεργαστές πρέπει να εκτελέσουν ένα σύνολο από ταυτόχρονες διεργασίες πρέπει ένας προκαθορισμένος αλγόριθμος χρονοπρογραμματισμού να εφαρμοστεί, ο οποίος θα αποφασίσει την σειρά με την οποία θα εκτελεστούν οι διάφορες διεργασίες. Σε ένα πολυεπεξεργαστικό σύστημα θα πρέπει μέσω κάποιων διαδικασιών ανάθεσης να αποφασιστεί ποιος επεξεργαστής θα εκτελέσει ποια διεργασία. Οι αλγόριθμοι χρονοπρογραμματισμού διεργασιών στο περιβάλλον της Ταυτόχρονης Διαχείρισης Διεργασιών έχουν μελετηθεί σε μεγάλη λεπτομέρεια (Yang κ. α., 2000,2001, Wong κ. α ). Οι αλγόριθμοι αυτοί χωρίζονται σε δύο κατηγορίες, σε δυναμικούς αλγόριθμους χρονοπρογραμματισμού και σε στατικούς αλγόριθμους χρονοπρογραμματισμού. Σε πολυεπεξεργαστικές πλατφόρμες όταν η εκτελούμενη εφαρμογή παρουσιάζει έντονη μη ντετερμινιστική συμπεριφορά, αλγόριθμοι δυναμικού χρονοπρογραμματισμού διαθέτουν την ευελιξία να ανακατανέμουν το υπολογιστικό φορτίο κατά την εκτέλεση του προγράμματος. Σε αυτή την περίπτωση εμφανίζεται αρκετά σημαντική επιβάρυνση του συστήματος από τους υπολογισμούς που πρέπει να πραγματοποιήσει ο χρονοπρογραμματιστής κατά την διάρκεια της εκτέλεσης της εφαρμογής. Για ενσωματωμένα συστήματα θα πρέπει να ληφθεί το κόστος που έχει αυτή η προσέγγιση σε άλλους τομείς όπως η κατανάλωση ενέργείας. Ο σκοπός της Διαχείρισης των Ταυτόχρονων Διεργασιών είναι να προσδιοριστεί ένα βέλτιστο σχήμα ανάθεσης των διαφόρων διεργασιών σε ένα σύνολο από διαθέσιμους επεξεργαστές. Οι διαθέσιμοι επεξεργαστές λειτουργούν κατά κανόνα σε διαφορετικές συχνότητες και καταναλώνουν διαφορετικά ποσά ενέργειας. Είναι λοιπόν προφανές ότι αν εκτελεστεί μια διεργασία σε κάποιον από αυτούς τους διαθέσιμους επεξεργαστές θα χρειαστεί διαφορετικό χρόνο προκειμένου να ολοκληρωθεί, άλλα θα απαιτήσει και διαφορετικό πόσο ενέργειας από ότι σε κάποιον άλλο επεξεργαστή. Αυτές οι διαφορές επιτρέπουν την επιλογή πολλών διαφορετικών σχημάτων χρονοπρογραμματισμού ανάλογα με την κατανάλωση ενέργειας και το χρόνο εκτέλεσης του κάθε κόμβου σε κάποιον από τους διαθέσιμους επεξεργαστές (Σχήμα 1).

Σχήμα 1 Πολυεπεξεργαστική Πλατφόρμα με 4 Επεξεργαστές Πρώτο βήμα αυτής της μεθόδου της Ταυτόχρονης Διαχείρισης Διεργασιών είναι να τεθούν οι προδιαγραφές του συστήματος χρησιμοποιώντας την αφαιρετική αναπαράσταση γκρίζου κουτιού (gray-box model). Η αναπαράσταση του γκρίζου κουτιού βασίζεται στον συνδυασμό δύο ιδιαίτερα γνωστόν μεθόδων αναπαράστασης, του Πολυδιεργασιακού Γράφου ΠΔΓ (multitask graph-mtg) και του γράφου ελέγχου-ροής δεδομένων ΕΡΔΓ (control-dataflow graph-cdfg) (Σχήμα 2). Στην πρώτη περίπτωση αναπαριστούμε το σύστημα σε ένα γράφο βασιζόμενο στις διεργασίες του συστήματος, ενώ στην δεύτερη ο γράφος περιγράφει την ροή των δεδομένων καθώς και τον τρόπο εκτέλεσης του προγράμματος. Στην προσέγγιση του γκρίζου κουτιού ο σχεδιαστής είναι σε θέση να παρακολουθήσει εποπτικά την ταυτοχρονισμό ή αλλιώς την παραλληλία του προγράμματος του, τους υφιστάμενους χρονικούς περιορισμούς και τις διάφορες αλληλεπιδράσεις μεταξύ τμημάτων του προγράμματος / συστήματος σε ένα περισσότερο ή λιγότερο λεπτομερές επίπεδο ανάλογα με τις ανάγκες του. Σχήμα 2 Γράφος Ελέγχου-Ροής Δεδομένων

Βάση αυτής της ανάλυσης εξάγεται ένα σύνολο από πλαίσια νημάτων. Το κάθε πλαίσιο νήματος αποτελείται από διάφορους κόμβους νήματος, τα οποία είναι και η βασική μονάδα χρονοπρογραμματισμού. Η διαδικασία του χρονοπρογραμματισμού χωρίζεται σε δύο φάσεις. Στην φάση του χρονοπρογραμματισμού κατά την διάρκεια του σχεδιασμού και στην φάση του χρονοπρογραμματισμού κατά την διάρκεια της εκτέλεσης. Η επιλογή αυτή έγινε διότι με τον τρόπο αυτό ελαχιστοποιείται η υπολογιστική πολυπλοκότητα του χρονοπρογραμματιστή κατά την διάρκεια της εκτέλεσης. Στο δεύτερο βήμα εφαρμόζεται χρονοπρογραμματισμός εντός του κάθε πλαισίου νήματος κατά την διάρκεια της μεταγλώττισης και βέβαια πραγματοποιείται η ανάθεση των κόμβων νήματος στους διαθέσιμους επεξεργαστές. Τέλος κατά την εκτέλεση του προγράμματος ο χρονοπρογραμματιστής κατά την διάρκεια της εκτέλεσης πραγματοποιεί τον χρονοπρογραμματισμό βασιζόμενος στα διαθέσιμα σχήματα από τον χρονοπρογραμματιστή κατά τη διάρκεια του σχεδιασμού. Ο χρονοπρογραμματιστής κατά την διάρκεια του σχεδιασμού όπως αναφέρθηκε νωρίτερα λειτουργεί εντός των πλαισίων νήματος. Σε αντίθεση με τους υπάρχοντες χρονοπρογραμματιστές δεν εξάγει μόνο ένα σχήμα χρονοπρογραμματισμού άλλα αντίθετα παρέχει ένα σύνολο από σημεία Pareto, το καθένα από αυτά είναι βέλτιστο στη δοθείσα σχέση χρόνου εκτέλεσης-ενεργειακής κατανάλωσης. Συνεπώς για κάθε σχήμα χρονοπρογραμματισμού που αντιπροσωπεύεται από ένα σημείο Pareto ισχύει ότι κάτω από ένα προκαθορισμένο χρονικό περιθώριο θα καταναλώσει την ελάχιστη δυνατή ενέργεια ή ότι χρησιμοποιώντας ένα προκαθορισμένο πόσο ενέργειας θα δώσει την ταχύτερη δυνατή λύση. Ο χρονοπρογραμματισμός κατά την διάρκεια του σχεδιασμού πραγματοποιείται στην φάση της μεταγλώττισης και συνεπώς μπορεί να καταναλώσει όσο χρόνο απαιτείται προκειμένου να εξαχθούν όσο τον δυνατόν καλύτερα αποτελέσματα. Ο χρονοπρογραμματιστής κατά την διάρκεια της εκτέλεσης αντιμετωπίζει ως ελάχιστη μονάδα χρονοπρογραμματισμού το πλαίσιο νήματος. Όταν ένα νέο πλαίσιο νήματος εμφανιστεί στο σύστημα ο χρονοπρογραμματιστής κατά την διάρκεια της εκτέλεσης προσπαθεί να ικανοποιήσει τους χρονικούς του περιορισμούς και παράλληλα να ελαχιστοποιήσει την κατανάλωση ενέργειας. Οι λεπτομέρειες μέσα στο πλαίσιο νήματος όπως ο χρόνος εκτέλεσης του κάθε κόμβου νήματος ή αλληλοεξαρτήσεις που έχει με άλλα κόμβους νήματος είναι αδιάφορα στoν χρονοπρογραμματιστή κατά την διάρκεια της εκτέλεσης μειώνοντας σημαντικά την υπολογιστική πολυπλοκότητα. O χρονοπρογραμματιστής κατά την διάρκεια του σχεδιασμού ενημερώνει τον χρονοπρογραμματιστή κατά την διάρκεια της εκτέλεσης μόνο για τα διαθέσιμα σημεία Pareto δηλαδή για τα διαθέσιμα σχήματα χρονοπρογραμματισμού και ο χρονοπρογραμματιστής κατά την διάρκεια της εκτέλεσης είναι υπεύθυνος να επιλέξει το πιο κατάλληλο από αυτά. Αυτό σημαίνει ότι θα πρέπει πρωταρχικά να ικανοποιήσει όλους τους χρονικούς περιορισμούς των υπό εκτέλεση πλαισίων νήματος στο σύστημα και στην συνέχεια να φροντίσει ώστε να καταναλώσει όσο το δυνατόν λιγότερη ενέργεια. Είναι λοιπόν προφανές ο χρονοπρογραμματιστής κατά την διάρκεια της εκτέλεσης δεν είναι ένας κλασσικός δυναμικός χρονοπρογραμματιστής αφού στην ουσία επιλέγει μεταξύ διαθέσιμων προκαθορισμένων σχημάτων χρονοπρογραμματισμού. Η συμπεριφορά ενός πλαισίου νήματος θα μπορούσε να περιγραφεί από γράφους διεργασιών (task graphs), στους οποίους κάθε κόμβος περιγράφει μια λειτουργία (function) μαζί με τις χρονικές απαιτήσεις της, ενώ κάθε ακμή περιγράφει τις εξαρτήσεις δεδομένων μεταξύ δύο κόμβων. Τέτοιου είδους γράφοι είναι απλοποιημένα υποσύνολα του ΠΔΓ-ΕΡΔΓ (MTG-CDFG) μοντέλου, όπου κάθε συνάρτηση (function) είναι ένας κόμβος στο ΠΔΓ-ΕΡΔΓ.

4 Αλγόριθμοι χρονοπρογραμματισμού σε περιβάλλον Ταυτόχρονης Διαχείρισης Διεργασιών Για να εξαχθούν τα κατάλληλα σχήματα χρονοπρογραμματισμού μπορούν να χρησιμοποιηθούν αρκετών ειδών διαφορετικοί στατικοί αλγόριθμοι χρονοπρογραμματισμού, όπως γενετικοί, ευρετικοί, βασιζόμενοι σε Μεικτό Ακέραιο Γραμμικό Προγραμματισμό ΜΑΓΠ (Mixed Integer Linear Programming-MILP), στους οποίους θα γίνει αναφορά παρακάτω. Η επιτυχία της μεθόδου Ταυτόχρονης Διαχείρισης Διεργασιών εξαρτάται άμεσα από την φάση του χρονοπρογραμματισμού κατά την διάρκεια του σχεδιασμού, αφού είναι προφανές ότι η εξαγωγή καλύτερων και περισσότερων σημείων Pareto θα συμβάλει αποφασιστικά στην επιλογή καλύτερων και αποδοτικότερων σχημάτων χρονοπρογραμματισμού. Στα πλαίσια αυτής της δημοσίευσης θα εξετάσουμε αλγορίθμους που έχουν χρησιμοποιηθεί μέχρι στιγμής και θα προτείνουμε ένα τροποποιημένο ευρετικό αλγόριθμο ο οποίος συμπεριφέρεται καλύτερα από τους προϋπάρχοντες σε όλους τους τομείς. Στα πειράματα που πραγματοποιήθηκαν χρησιμοποιήθηκαν κυρίως τεχνητοί γράφοι, ενώ σε ορισμένες περιπτώσεις χρησιμοποιήθηκαν και πραγματικές εφαρμογές. Οι τεχνητοί γράφοι εξήχθησαν από το εργαλείο TGFF (Dick κ.α.), διότι παρέχει το πλεονέκτημα ότι παραγόμενοι γράφοι είναι δυνατόν να αναπαραχθούν ώστε να μπορεί να ελεγχθεί η εγκυρότητα των αποτελεσμάτων. Οι αλγόριθμοι θα αξιολογηθούν ανάλογα με την συμπεριφορά τους βάση των παρακάτω κριτηρίων: Την καμπύλης Pareto που είναι σε θέση να παράγουν. Είναι ιδιαιτέρως σημαντικό η εξαγόμενη καμπύλη Pareto να καλύπτει όσον το δυνατόν μεγαλύτερο πεδίο τιμών και σύνολο τιμών διότι κάθε εναλλαγή του σχήματος χρονοπρογραμματισμού περιλαμβάνει και κάποιο κόστος, τόσο χρονικό όσο και ενεργειακό. Προκείμενου το σύστημα να αποκομίσει οφέλη θα πρέπει η εναλλαγή να μη πραγματοποιείται σε πολύ κοντινά σημεία αφού σε αυτή την περίπτωση το κόστος της θα είναι μεγαλύτερο από το προσδοκώμενο όφελος. Τον αριθμό των Pareto σημείων. Είναι επιθυμητό ο αριθμός των σημείων Pareto να είναι ο μέγιστος δυνατός. Ακόμα και αν η καμπύλη καλύπτει μεγάλο πεδίο τιμών και σύνολο τιμών αν περιέχει περιορισμένο αριθμό σημείων ο χρονοπρογραμματιστής κατά την διάρκεια της εκτέλεσης θα έχει ελάχιστες επιλογές. Αντίθετα αν τα σημεία είναι άφθονα ο χρονοπρογραμματιστής κατά την διάρκεια της εκτέλεσης θα διαθέτει μεγάλη γκάμα επιλογών προκειμένου να επιλέξει το βέλτιστο δυνατό σχήμα. Την ποιότητα των σημείων Pareto. Η εξαγωγή των βέλτιστων σημείων απαιτεί εξαντλητικό έλεγχο του γράφου, κάτι το οποίο λόγω πολυπλοκότητας σε ορισμένες περιπτώσεις είναι αδύνατον, είναι ωστόσο εφικτό να εντοπίσθουν σχεδόν βέλτιστα σημεία.

Τον υπολογιστικός χρόνο. Αναφέρθηκε νωρίτερα ότι στον χρονοπρογραμματισμό κατά την διάρκεια της σχεδίασης ο υπολογιστικός χρόνος δεν είναι πρωτεύουσας σημασίας. Σε γενικές γραμμές είναι προτιμότερο να δαπανηθεί παραπάνω υπολογιστικός χρόνος προκειμένου να παραχθούν καλύτερα σχήματα χρονοπρογραμματισμού τα οποία θα μειώσουν το υπολογιστικό φορτίο στην φάση του χρονοπρογραμματισμού κατά την διάρκεια της εκτέλεσης. Αλγόριθμοι οι οποίοι απαιτούν υπερβολικό υπολογιστικό χρόνο θεωρούνται απαράδεκτοι. Θεωρούμε ως μέγιστα αποδεκτά χρονικά διαστήματα υπολογισμού αυτά που δεν ξεπερνούν μερικές δεκάδες ωρών. Οι αλγόριθμοι που μέχρι στιγμής έχουν εφαρμοστεί στην μεθοδολογία TCM είναι ένας γεννητικός αλγόριθμος, ένας ευρετικός αλγόριθμος και ένας αλγόριθμος βασιζόμενος σε μεικτό ακέραιο γραμμικό προγραμματισμό. Γενετικός αλγόριθμος χρονοπρογραμματισμού Ο γενετικός αλγόριθμος που έχει χρησιμοποιηθεί κατά την φάση του χρονοπρογραμματισμού κατά την διάρκεια της σχεδίασης έχει κατασκευαστεί με βάση τη βιβλιοθήκη Parallel Genetic Algorithm (PGA), διότι προσέφερε ένα σύνολο έτοιμων ρουτινών καθώς και άλλων ευκολιών (Levine κ.α.). Ο αλγόριθμος αυτός δέχεται ως είσοδο μια χρονική προθεσμία και προσπαθεί να βρει ένα σχήμα χρονοπρογραμματισμού το οποίο να καταναλώνει την ελάχιστη δυνατή ενέργεια εντός των χρονικών ορίων αυτών. Στον γενετικό αλγόριθμο το χρωμόσωμα αναπαριστά μια λύση. Τρεις λειτουργίες προκαλούν όλες τις αλλαγές στα χρωματοσώματα. Η αναπαραγωγή (reproduction) η οποία δημιουργεί ένα αντίγραφο του χρωματοσώματος στο οποίο εφαρμόζεται, η μετάλλαξη (mutation) η οποία μεταβάλει τυχαία κάποιο τμήμα του χρωματοσώματος και τέλος η διασταύρωση (crossover) η οποία αντιμεταθέτει τμήματα δύο χρωματοσωμάτων. Η διασταύρωση είναι ίσως η πλέον σημαντική λειτουργία ενός γεννητικού αλγορίθμου αφού επιτρέπει στις διάφορες καλές λύσεις να ανταλλάσσουν πληροφορίες. Χρησιμοποιώντας τις τρεις αυτές διαδικασίες επαναληπτικά, ο γενετικός αλγόριθμος δημιουργεί απογόνους που συμπεριφέρονται καλύτερα από την προηγούμενη γενιά και προσεγγίζουν εγγύτερα την λύση του προβλήματος. Βασικής σημασίας σε ένα γενετικό αλγόριθμο είναι η συνάρτηση κόστους η οποία αξιολογεί τις προτεινόμενες λύσεις και επιλέγει τις καλύτερες οι οποίες και αποτελούν την επόμενη γενιά, ενώ οι λιγότερο καλές απορρίπτονται. Αυτή η επαναληπτική διαδικασία συνεχίζεται μέχρι να βρεθεί μια ικανοποιητική λύση ή να εκτελεστεί ένας μέγιστος αριθμός επαναλήψεων ή τέλος ο πληθυσμός του γενετικού αλγορίθμου να καταστεί υπερβολικά όμοιος με αποτέλεσμα να μην μπορούν να παραχθούν νέες λύσεις. Το μεγαλύτερο πρόβλημα του γενετικού αλγορίθμου αποτελεί ο μη ντετερμινισμός του το οποίο σημαίνει ότι ακόμα και με την ίδια είσοδο τα αποτελέσματα τα οποία εξάγει διαφοροποιούνται με κάθε εκτέλεση του προγράμματος. Το φαινόμενο αυτό τον καθιστά μη ικανοποιητικό για ενσωματωμένα συστήματα, στα οποία ο ντετερμινισμός θεωρείται απαραίτητος. Αλγόριθμος χρονοπρογραμματισμού βασιζόμενος σε μεικτό ακέραιο γραμμικό προγραμματισμό (MILP).

Αλγόριθμοι που βασίζονται σε μεικτό ακέραιο γραμμικό προγραμματισμό είναι δυνατόν να χρησιμοποιηθούν μόνο όταν ο γράφος που εξερευνείται είναι πολύ μικρού μεγέθους. Σε αυτές τις περιπτώσεις ο αλγόριθμος αυτός είναι σε θέση να εξάγει τα βέλτιστα αποτελέσματα αφού πραγματοποιεί πλήρη εξερεύνηση των διαθέσιμων λύσεων. Σε μεγαλύτερου μεγέθους γράφους όμως κάτι τέτοιο δεν είναι εφικτό αφού η πολυπλοκότητα αυξάνει εκθετικά και ο υπολογιστικός χρόνος όσο μεγάλος και αν είναι δεν επαρκεί. Ευρετικός αλγόριθμος χρονοπρογραμματισμού Ο ευρετικός αλγόριθμος χρησιμοποιεί το απλοποιημένο ΠΔΓ-ΕΡΔΓ μοντέλο που αναλύθηκε παραπάνω και λειτουργεί ως εξής. Προκειμένου να πραγματοποιήσει τον χρονοπρογραμματισμό στους κόμβους νήματος του ΠΔΓ-ΕΡΔΓ γράφου βασίζεται σε δύο κριτήρια. Το πρώτο κριτήριο λαμβάνει υπόψη το βάρος (self weight) του κάθε κόμβου νήματος, το οποίο ισούται με τον χρόνο εκτέλεσης του συγκεκριμένου κόμβου στον επεξεργαστή με τον χαμηλότερο χρόνο εκτέλεσης. Όσο μεγαλύτερο είναι το βάρος του κάθε κόμβου, τόσο αυξάνεται η προτεραιότητα που έχει να εκτελεστεί στον ταχύτερο επεξεργαστή. Το δεύτερο κριτήριο είναι το φορτίο (load) του κάθε κόμβου. Με τον όρο φορτίο εννοούμε το σύνολο των βαρών των εξαρτώμενων από αυτόν κόμβων (Σχήμα 3). Ας σημειωθεί ότι με τον όρο εξάρτηση αναφερόμαστε στην εξάρτηση ελέγχου (control dependency). Όσο μεγαλύτερο φορτίο διαθέτει ο συγκεκριμένος κόμβο τόσο νωρίτερα θα πρέπει να αρχίσει να εκτελείται. Αναφερόμαστε εφ εξής στην στρατηγική αυτή ως στρατηγική μέγιστου βάρουςμέγιστου φορτίου. Με βάση τα παραπάνω κριτήρια όταν ένας επεξεργαστής είναι διαθέσιμος δηλαδή είναι ανενεργός, τότε από όλους τους υποψήφιους κόμβους επιλέγεται αυτός που 1. Έχει το μεγαλύτερο βάρος καθώς και το μεγαλύτερο φορτίο. 2. Στην περίπτωση που κάποιος κόμβος έχει το μεγαλύτερο βάρος και κάποιος άλλος έχει το μεγαλύτερο φορτίο τότε οποιοσδήποτε από τους δύο μπορεί να εκτελεστεί πρώτος. Εναλλάσσοντας την σειρά τους παράγονται διάφορα σημεία Pareto.

W=10 L=6 W=15 L=18 W=6 L=0 W=Βάρος L=Φορτίο W=2 L=6 Σχήμα 3. Υπολογισμός του Φορτίου ενός Κόμβου με βάση το Βάρος των Εξαρτώμενων Κόμβων

Υποψήφιοι κόμβοι χαρακτηρίζονται οι κόμβοι των οποίων όλοι οι πρόγονοι έχουν είδη ανατεθεί σε κάποιο επεξεργαστή και συνεπώς δεν υπόκεινται σε περιορισμούς λόγω εξαρτήσεων. Ο αλγόριθμος αυτός αν και φαινομενικά απλός είναι σε θέση να δώσει αξιόλογα αποτελέσματα. Δεδομένου ότι σε κάθε επεξεργαστή η κατανάλωση ενέργειας συσχετίζεται άμεσα με τον χρόνο εκτέλεσης, το φορτίο και το βάρος αποτελούν αναπαραστάσεις του χρόνου εκτέλεσης από διαφορετικές οπτικές γωνίες. Ο ευρετικός αλγόριθμος διαθέτει το σημαντικότατο πλεονέκτημα ότι είναι ταχύτατος με αποτέλεσμα να είναι σε θέση να εξερευνήσει μεγάλους και πολύπλοκους γράφους σε δευτερόλεπτα. Ο συγκεκριμένος αλγόριθμος είναι ο ταχύτερος από όσους έχουν εξετασθεί στα πλαίσια αυτής της εργασίας. Τα κυριότερα όμως μειονεκτήματα του ευρετικού αλγορίθμου είναι ότι η καμπύλη Pareto που εξάγει καλύπτει πολύ περιορισμένο πεδίο τιμών και σύνολο τιμών, ενώ τα σημεία Pareto που παράγει είναι λίγα. Επιπλέον λόγω της δομής του αλγορίθμου τα σχήματα χρονοπρογραμματισμού που προτείνει έχουν συνήθως υψηλή ενεργειακή κατανάλωση και μικρό χρόνο εκτέλεσης. Τα προβλήματα αυτά καθιστούν εξαιρετικά δύσκολη έως αδύνατη την χρησιμοποίηση του σε πραγματικές εφαρμογές, οπού υπάρχει σημαντικό κόστος από την μετάβαση από ένα σχήμα χρονοπρογραμματισμού σε κάποιο άλλο. Επεκταμένος ευρετικός αλγόριθμος χρονοπρογραμματισμού Στα πλαίσια αυτής της εργασίας παρουσιάζουμε έναν αλγόριθμο χρονοπρογραμματισμού ο οποίος είναι σε θέση να επιλύσει τα προαναφερθέντα προβλήματα και να ξεπεράσει τον αρχικό ευρετικό αλγόριθμο σε όλα τα σημεία κάτω από οποιασδήποτε περιπτώσεις, εκτός αυτής του απαιτούμενου υπολογιστικού χρόνου. Η βελτίωση του επεκταμένου αλγορίθμου, όπως εφεξής θα αναφέρεται, είναι σημαντική όπως θα φανεί από τα παρακάτω πειραματικά αποτελέσματα ενώ αντίθετα η αύξηση του χρόνου που απαιτείται για να υπολογιστούν αυτά είναι μικρή, αφού σε όλα σχεδόν τα πειράματα που πραγματοποιήθηκαν δεν χρειάστηκαν παραπάνω από μερικά λεπτά. Στο προηγούμενο κεφάλαιο αναφέρθηκε ότι ο ευρετικός αλγόριθμος ακολουθεί την τακτική του μέγιστου φορτιού-μέγιστου βάρους. Η επιλογή αυτή είναι σαφώς λογική, ωστόσο θεωρήσαμε εξίσου λογικές και τις προσεγγίσεις του μέγιστου φορτίου-ελάχιστου βάρους και ελάχιστου φορτίου-μέγιστου βάρους. Για την πληρότητα της ερευνάς πραγματοποιήσαμε πειράματα χρησιμοποιώντας όλες τις δυνατές τακτικές. Συγκεκριμένα ελέγξαμε τους κάτωθι συνδυασμούς 1. Μέγιστο φορτίο-μέγιστο βάρος 2. Μέγιστο φορτίο-ελάχιστο βάρος 3. Ελάχιστο φορτίο-μέγιστο βάρος 4. Ελάχιστο φορτίο-ελάχιστο βάρος Τα αποτελέσματα εξήχθησαν χρησιμοποιώντας πλατφόρμες με 4, 6 και 8 επεξεργαστές. Σε κάθε πλατφόρμα δοκιμάσαμε 10 διαφορετικούς συνδυασμούς των τάσεων των επεξεργαστών (Vdd). Παρουσιάζουμε μόνο ένα μικρό άλλα αντιπροσωπευτικό μέρος των αποτελεσμάτων, ωστόσο το σύνολο των αποτελεσμάτων είναι διαθέσιμο. Ο γράφος που χρησιμοποιήθηκε δημιουργήθηκε από το πρόγραμμα TGFF και περιλαμβάνει 41 κόμβους και 60 ακμές.

Τα αποτελέσματα δείχνουν ξεκάθαρα ότι όλες οι διαφορετικές στρατηγικές με εξαίρεση την στρατηγική ελάχιστου φορτίου-ελάχιστου βάρους εμφανίζουν ορισμένα πολύ καλά σημεία Pareto άλλα και ορισμένα λιγότερο καλά. Μπορούμε να επαληθεύσουμε ότι η πρώτη και η τρίτη στρατηγική παράγουν καλύτερα αποτελέσματα από ότι η αρχική έκδοση του αλγορίθμου στις περισσότερες περιπτώσεις. Τα αποτελέσματα δεν διαφοροποιούνται αισθητά αν χρησιμοποιήσουμε 4, 6 ή 8 επεξεργαστές. Παρατηρήσουμε ωστόσο ότι σε ορισμένες περιπτώσεις ο αρχικός αλγόριθμος συμπεριφέρεται πολύ καλά. Είναι σαφές ότι κανένας αλγόριθμος δεν μπορεί να ξεπεράσει όλους τους άλλους σε όλες τις περιπτώσεις. Οι παραπάνω παρατηρήσεις μας οδήγησαν στην απόφαση να τροποποιήσουμε τον αλγόριθμο έτσι ώστε να πραγματοποιεί πολλαπλές εξερευνήσεις του γράφου ακολουθώντας κάθε φορά διαφορετική στρατηγική και στο τέλος συνδυάζοντας τα αποτελέσματα τους να επιλέγονται τα σημεία Pareto. Τα αποτελέσματα του τροποποιημένου ευρετικού αλγορίθμου δείχνουν μια ξεκάθαρη βελτίωση τόσο όσον αφορά την ενεργειακή κατανάλωση όσο και τον απαιτούμενο χρόνο εκτέλεσης, η οποία σε ορισμένες περιπτώσεις αγγίζει το 10% Ο χρόνος εκτέλεσης του τροποποιημένου ευρετικού αλγορίθμου είναι περίπου τέσσερις φορές ο χρόνος του αρχικού αλγορίθμου, αφού πραγματοποιούμε τέσσερα περάσματα του γράφου ακολουθώντας διαφορετική στρατηγική στο καθένα. Η αύξηση της απόδοσης του αλγορίθμου είναι σημαντική ωστόσο δεν μπορεί να ανταποκριθεί στις απαιτήσεις ενός πραγματικού συστήματος. Το επόμενο σημείο το οποίο θεωρήσαμε ότι επιδέχεται βελτίωση είναι ο τρόπος με τον οποίο επιλέγεται ο επεξεργαστής που θα εξυπηρετήσει έναν υποψήφιο κόμβο. Ο αρχικός ευρετικός αλγόριθμος όταν εμφανιστεί ένας υποψήφιος κόμβος ελέγχει αν ο γρηγορότερος επεξεργαστής είναι διαθέσιμος, ο οποίος είναι φυσικά και αυτός που καταναλώνει περισσότερη ενέργεια, και αν είναι αναθέτει σε αυτόν την εκτέλεση του συγκεκριμένου κόμβου. Εάν ο γρηγορότερος επεξεργαστής δεν είναι διαθέσιμος τότε ελέγχει αν ο δεύτερος σε ταχύτητα επεξεργαστής είναι διαθέσιμος και στην περίπτωση που είναι του αναθέτει τον κόμβο. Αυτό συνεχίζεται με όλους τους διαθέσιμους επεξεργαστές της πλατφόρμας μέχρι να βρεθεί κάποιος ο οποίος να είναι ανενεργός. Σε περίπτωση που κανένας επεξεργαστής δεν είναι διαθέσιμος τότε ο αλγόριθμος επιλέγει τον επεξεργαστή που θα απελευθερωθεί πρώτος (Σχήμα 4). Είναι ξεκάθαρο ότι αυτή η προσέγγιση αντιμετωπίζει τον γρηγορότερο επεξεργαστή προνομιακά αφού σε κάθε υποψήφιο κόμβο είναι ο πρώτος που ελέγχεται για το αν είναι διαθέσιμος, ενώ αντίθετα ο πιο αργός επεξεργαστής της πλατφόρμας θα εκτελέσει κάποιο κόμβο μόνο αν όλοι άλλοι επεξεργαστές είναι απασχολημένοι. Ο γρηγορότερος επεξεργαστής αποτελεί τον «προτιμώμενο» επεξεργαστή του αρχικού αλγορίθμου. Η τακτική αυτή έχει σαν αποτέλεσμα τα περισσότερα σημεία Pareto που εξάγονται να αντιστοιχούν σε σχήματα χρονοπρογραμματισμού με υψηλή ενεργειακή κατανάλωση άλλα και σύντομο χρόνο απόκρισης. Επίσης όπως αναφέρθηκε και νωρίτερα το πεδίο τιμών και το σύνολο τιμών καμπύλης είναι σαφώς περιορισμένο όπως και ο αριθμός των σημείων Pareto (Σχήμα 7). void choose_processor ()

for (int i=0;i<number_of_processor_in_the_platform;i++) { // processor[0] is the fastest and highest Vdd processor if processor[i]==free { assign_node_to_the_processor(); assigned=true; break; } } if (assigned==false) find_the_earliest_finishing_processor(); Σχήμα 4. Ψευδοκώδικας του Αρχικού Ευρετικού Αλγορίθμου.

Η λύση που προτείνουμε βασίζεται πάλι στην πολλαπλή εξερεύνηση του γράφου. Σε κάθε πέρασμα που πραγματοποιούμε επιλέγουμε να έχουμε διαφορετικό «προτιμώμενο» επεξεργαστή. Κατά την διάρκεια του πρώτου περάσματος προσπαθούμε να αναθέσουμε τους υποψήφιους κόμβους στον γρηγορότερο επεξεργαστή, ενώ κατά την διάρκεια του δεύτερου περάσματος στον δεύτερο γρηγορότερο και ούτος ακολούθως. Η διαδικασία αυτή επαναλαμβάνεται τόσες φορές όσοι είναι και οι επεξεργαστές που αποτελούν την πλατφόρμα. Ο αλγόριθμος λειτουργεί ως εξής. Εάν ο «προτιμώμενος» επεξεργαστής δεν είναι σε θέση να εξυπηρετήσει τον υποψήφιο κόμβο τότε ελέγχουμε αν όλοι οι άλλοι επεξεργαστές είναι διαθέσιμοι. Δηλαδή στην περίπτωση που ο «προτιμώμενος» επεξεργαστής είναι ο δεύτερος γρηγορότερος αλλά δεν είναι διαθέσιμος τότε θα εξεταστούν διαδοχικά όλοι οι αργότεροι επεξεργαστές και ο τελευταίος από αυτούς που είναι ανενεργοί είναι αυτός που εκτελεί τον υποψήφιο κόμβο. Θα πρέπει να προσδιορίσουμε ότι εφεξής όταν αναφερόμαστε σε πρώτο, δεύτερο και ούτος ακολούθως επεξεργαστή αναφερόμαστε στην σειρά με την οποία διατάσσονται ανάλογα με την ταχύτητα λειτουργίας τους καθώς και την ενεργειακή τους κατανάλωση, ξεκινώντας από τον ταχύτερο και τον πλέον απαιτητικό σε ενέργεια επεξεργαστή και καταλήγοντας στον αργότερο και λιγότερο απαιτητικό ενεργειακά επεξεργαστή. Αν ο «προτιμώμενος» επεξεργαστής δεν είναι σε θέση να εκτελέσει τον υποψήφιο κόμβο άλλα ούτε και οι αργότεροι από αυτόν επεξεργαστές είναι διαθέσιμοι τότε ο αλγόριθμος επιχειρεί να αναθέσει τον κόμβο στους ταχύτερους επεξεργαστές ξεκινώντας από τον πλέον γρήγορο. Δοκιμάζονται όλοι οι ταχύτεροι από τον «προτιμώμενο» επεξεργαστές και ο λιγότερο ταχύς από αυτούς που είναι διαθέσιμος είναι αυτός που εκτελεί τελικά τον κόμβο (Σχήμα 5). void choose_processor (int preferred_processor) for (int i=0;i<number_of_processor_in_the_platform;i++) { // processor[0] is the fastest and highest Vdd processor if processor[i]==free { assign_node_to_the_processor(); if processor[i]==preferred_processor { assigned=true; break;

} } } if (assigned==false) find_the_earliest_finishing_processor(); Σχήμα 5. Ψευδοκώδικας του Επεκταμένου Αλγόριθμου με την Προσθήκη του «Προτιμώμενου» Επεξεργαστή. Τα πειραματικά αποτελέσματα αποδεικνύουν ότι ο επεκταμένος αλγόριθμος με αυτές τις τροποποιήσεις είναι σε θέση να ικανοποιήσει πραγματικές εφαρμογές αφού η καμπύλη Pareto καλύπτει ικανοποιητική περιοχή και ο αριθμός των σημείων είναι ιδιαίτερα μεγάλος (Σχήμα 8). Ο χρόνος που απαιτείται για την εξαγωγή αυτών των αποτελεσμάτων είναι περίπου τετραπλάσιος του αριθμού των επεξεργαστών της πλατφόρμας σε σχέση με τον αρχικό ευρετικό αλγόριθμο. Σε κανένα από τα πειράματα αυτός ο χρόνος δεν ξεπέρασε τα μερικά λεπτά. Το μειονέκτημα αυτού του αλγορίθμου σε σχέση με τον αρχικό ευρετικό αλγόριθμο είναι η αδυναμία του να εξάγει ορισμένα σημεία Pareto που αντιστοιχούν σε σχήματα χρονοπρογραμματισμού υψηλής ενεργειακής κατανάλωσης-σύντομου χρόνου απόκρισης. void choose_processor (int preferred_processor) for (int i=0;i<number_of_processor_in_the_platform;i++) { // processor[0] is the fastest and highest Vdd processor if processor[i]==free { assign_node_to_the_processor(); if processor[i]>=preferred_processor { break; assigned=true; } } } if (assigned==false) find_the_earliest_finishing_processor();

Σχήμα 6. Ψευδοκώδικας του Επεκταμένου Αλγόριθμου στην Τελική του Μορφή.

Για τον λόγο αυτό προχωρήσαμε σε μια τελευταία τροποποίηση στον επεκταμένο ευρετικό αλγόριθμο. Ο αλγόριθμος πλέον συμπεριφέρεται ως εξής. Σε περίπτωση που ο «ευνοούμενος» επεξεργαστής αλγόριθμος δεν είναι σε θέση να εξυπηρετήσει ένα κόμβο τότε ο αμέσως επόμενος βραδύτερος επεξεργαστής που είναι ανενεργός είναι αυτός που εκτελεί τον κόμβο, χωρίς ο αλγόριθμος να ελέγχει τους υπόλοιπους επεξεργαστές. Σε περίπτωση που κανείς από τους αργότερους επεξεργαστές, σε σχέση πάντα με τον «προτιμώμενο» επεξεργαστή, δεν είναι διαθέσιμος τότε ελέγχονται οι γρηγορότεροι. Όπως ακριβώς και στην προηγούμενη παραλλαγή του αλγορίθμου ο πλέον αργός από τους ταχύτερους από τον «προτιμώμενο» επεξεργαστής που είναι ανενεργός είναι αυτός που τελικά αναλαμβάνει να εκτελέσει τον υποψήφιο κόμβο (Σχήμα 6). Τα πειραματικά αποτελέσματα αποδεικνύουν ότι η τελευταία παραλλαγή του επεκταμένου ευρετικού αλγορίθμου είναι σε θέση να ξεπεράσει τον αρχικό ευρετικό αλγόριθμο κάτω από όλες τις συνθήκες. Η παραγόμενη Pareto καμπύλη έχει το μεγαλύτερο πεδίο τιμών και σύνολο τιμών, ο αριθμός των σημείων είναι επαρκής, ενώ πλέον ο αλγόριθμος είναι σε θέση να εξάγει και τα υψηλής ενεργειακής κατανάλωσης-σύντομου χρόνου απόκρισης σχήματα χρονοπρογραμματισμού γεγονός που τον καθιστά απόλυτα κατάλληλο για να χειριστεί πραγματικές εφαρμογές (Σχήμα 9). Περισσότερο προσεκτική ανάλυση των αποτελεσμάτων μας επιτρέπει να ισχυριστούμε ότι παρατηρούμε βελτίωση του επεκταμένου ευρετικού αλγορίθμου σε σχέση με τον αρχικό κατά 14 φορές τόσο ως προς την ενεργειακή κατανάλωση όσο και ως προς των χρόνο εκτέλεσης. Η βελτίωση αυτή προκύπτει αν παρατηρήσουμε το πεδίο τιμών και το σύνολο τιμών της κάθε καμπύλης. Αφαιρώντας δηλαδή την μεγαλύτερη χρονική τιμή από την μικρότερη όσον αφορά τον άξονα που περιλαμβάνει τον απαιτούμενο χρόνο όσο και αυτόν που αναπαριστά την καταναλισκόμενη ενέργεια και τις συγκρίνουμε διαπιστώνεται η παραπάνω βελτίωση. Επιπλέον παρατηρούμε και δεκαπλασιασμό του αριθμού των σημείων Pareto. Τα αποτελέσματα αυτά είναι ιδιαίτερα ικανοποιητικά και είναι επιπλέον υπερεπαρκή να καλύψουν τις ανάγκες οποιασδήποτε εφαρμογής.

Σχήμα 7 Πλατφόρμα 4 Επεξεργαστών. Σύγκριση Μεταξύ Αρχικού Αλγορίθμου και Επεκταμένου Αλγορίθμου. Σχήμα 8 Πλατφόρμα 4 Επεξεργαστών. Σύγκριση μεταξύ Αρχικού Αλγορίθμου και Επεκταμένου Αλγορίθμου.

Σχήμα 9 Πλατφόρμα 4 Επεξεργαστών. Σύγκριση μεταξύ Αρχικού Αλγορίθμου και Πλήρως Βελτιστοποιημένου Επεκταμένου Αλγορίθμου.

5 Συμπεράσματα Ο επεκταμένος αλγόριθμος χρονοπρογραμματισμού που παρουσιάζουμε εμφανίζει σε όλες τις περιπτώσεις καλύτερα αποτελέσματα σε σύγκριση με τον υπάρχον αλγόριθμό χρονοπρογραμματισμού της μεθοδολογίας Ταυτόχρονης Διαχείρισης Διεργασιών, ενώ εμφανίζει σημαντικά πλεονεκτήματα σε σχέση με Γενετικούς Αλγορίθμους και Αλγορίθμους Μεικτού Ακέραιου Γραμμικού Προγραμματισμού που επίσης αξιολογήθηκαν με κριτήρια την ενεργειακή κατανάλωση κάθε κόμβου, τον απαιτούμενο χρόνο εκτέλεσης του καθώς και την χρονική σειρά με την οποία διατάσσονται οι κόμβοι. Σε μελλοντικές εκδόσεις του αλγορίθμου κρίνεται απαραίτητο να περιλαμβάνεται και το κόστος επικοινωνίας μεταξύ των κόμβων, αφού σε ορισμένες περιπτώσεις είναι σημαντικό. Τέλος προκείμενου να επιτευχθεί η μέγιστη δυνατή ακρίβεια στα προτεινόμενα σχήματα χρονοπρογραμματισμού θα ήταν χρήσιμο να υπολογίζεται σε κάθε περίπτωση και το κόστος μετάβασης του επεξεργαστή από ενεργή σε ανενεργή κατάσταση και αντίστροφα 6 Ευχαριστίες Η έρευνα αυτή πραγματοποιήθηκε στο ερευνητικό κέντρο Imec, στο Leuven του Βελγίου σε συνεργασία με το εργαστήριο Σχεδιασμού Ολοκληρωμένων Κυκλωμάτων του τμήματος Ηλεκτρολόγων Μηχανικών του Πανεπιστήμιου Πατρών στα πλαίσια της εκπόνησης της διπλωματικής εργασίας του συγγραφέα για το μεταπτυχιακό πρόγραμμα ειδίκευσης «Ολοκληρωμένα Συστήματα Υλικού Λογισμικού». Ο συγγραφέας αισθάνεται την ανάγκη να ευχαριστήσει τους επιβλέποντες Καθηγητές κ.κ. Γκούτη και Catthoor καθώς και τους υποψήφιους διδάκτορες και βασικά μέλη της ομάδας Ταυτόχρονης Διαχείρισης Διεργασιών στο ερευνητικό κέντρο Imec κ.κ Wong, Yang και Marchal των οποίων η ερευνητική δουλεία αποτέλεσε η βάση αυτής της ερευνητικής εργασίας. Βιβλιογράφια Dick, R. P., Rhodes, D. L and Wolf, W., TGFF: Tasks Graphs for Free, In Proceedings International Workshop Hardware/Software Codesign, pp. 97--101, Mar. 1998. Levine, D., Users Guide to the PGAPack Parallel Genetic Algorithm Library, Current on line: http://wwwfp.mcs.anl.gov/ccst/research/reports_pre1998/comp_bio/stalk/pgapack.html

Yang, P., Wong, C., Marchal, P., Catthoor, F., Desmet, D., Verkest, D., and Lauwereins, R. Energy-Aware Runtime Scheduling for Embedded- Multiprocessor SOCs, IEEE Design and Test, Sept. 2001. Yang, P., Desmet, D., Catthoor, F., and Verkest, D., Dynamic Scheduling of Concurrent Tasks with Cost Performance Tradeoff, International conference on Compilers, Architecture and Synthesis for Embedded Systems pp.103-9, San Jose(CA), Nov 17-18, 2000. Wong, C., Thoen, F., Catthoor, F., Verkest, D., Static Task Scheduling of Embedded Systems, 3rd Workshop on System Design Automation - SDA 2000 Rathen, Germany,pp.23-30, Mar. 2000. Wong, C., Marchal, P., Yang, P., Task concurrency management methodology to schedule the MPEG4 IM1 player on a highly parallel processor platform, Proceedings of Design Automation and Test Conference