Search citation statements
Paper Sections
Citation Types
Year Published
Publication Types
Relationship
Authors
Journals
Η κατανάλωση ενέργειας αποτελεί έναν περιοριστικό παράγοντα και βασικό μέλημα για το μέλλον των υπολογιστικών συστημάτων. Οι ετερογενείς αρχιτεκτονικές αποτελούν ένα βήμα προς την υλοποίηση πλατφορμών υπολογιστών με μεγάλη απόδοση στους τομείς της ισχύος, επίδοσης, και κατανάλωσης ενέργειας. Φυσικά, η ετερογένεια δεν ισχύει μόνο για το υλικό. Είναι εγγενώς παρούσα και στο επίπεδο του λογισμικού. Όλα τα τμήματα ή οι φάσεις εκτέλεσης ενός προγράμματος δεν επηρεάζουν την ποιότητα των παραγόμενων αποτελεσμάτων στον ίδιο βαθμό. Στην παρούσα διδακτορική διατριβή διερευνώνται τρόποι βελτιστοποίησης των εφαρμογών με βάση αυτή την πτυχή της ετερογένειας του λογισμικού, μέσω της αλγοριθμικής ιδιότητας της σημαντικότητας (significance). Η σημαντικότητα των υπολογισμών είναι μια μετρική που καθορίζει ποιοτικά τον αντίκτυπο συγκεκριμένων υπολογισμών στην ποιότητα εξόδου της εφαρμογής. Εισάγουμε μεθοδολογίες και υλοποιούμε εργαλεία λογισμικού που στοχεύουν στον εντοπισμό και την αξιοποίηση των ευκαιριών για φιλόδοξη βελτιστοποίηση της εκτέλεσης των λιγότερο σημαντικών τμημάτων ενός προγράμματος. Αυτά τα τμήματα μπορεί να έχουν αντίστοιχο κόστος εκτέλεσης με σημαντικότερα τμήματα αλλά δεν επηρεάζουν εξίσου έντονα την ποιότητα εξόδου της εφαρμογής.Δείχνουμε ότι είναι δυνατή η βελτιστοποίηση των εφαρμογών μέσω των αρχών της προσεγγιστικής υπολογιστικής, που κάνει χρήση της αλγοριθμικής ιδιότητας της σημαντικότητας. Εκτός από την προσεγγιστική υπολογιστική, διερευνάμε και μια πιο φιλόδοξη προσέγγιση η οποία βασίζεται στη χρήση αναξιόπιστου υλικού και τις αρχές της ανοχής εφαρμογών σε σφάλματα. Το κίνητρό μας είναι η παρατήρηση ότι οι σχεδιαστές υλικού θυσιάζουν τις επιδόσεις, την ενέργεια και την αποδοτικότητα ισχύος για να διατηρήσουν την ψευδαίσθηση της αξιοπιστίας του υλικού. Κατά συνέπεια, μπορεί κανείς να χαλαρώσει τους περιορισμούς αξιοπιστίας του υλικού για να μειώσει τα σχετικά κόστη του σε ισχύ, απόδοση, καθώς και ενέργεια. Δυστυχώς, το μη αξιόπιστο υλικό μπορεί να επηρεάσει δυσμενώς την ορθότητα της εκτέλεσης των εφαρμογών. Για το σκοπό αυτό, σχεδιάζουμε μεθοδολογίες και υλοποιούμε υποστήριξη λογισμικού που δίνουν την επιλογή σε έναν χρήστη να εκτελέσει τμήματα της εφαρμογής του σε ενεργειακά αποδοτικό, αν και αναξιόπιστο υλικό.Αρχικά, εισάγουμε το βασικό πλαίσιο για τον υπολογισμό της σημαντικότητας. Αυτό συμπεριλαμβάνει ένα ευέλικτο μοντέλο προγραμματισμού και συνοδευτικά συστήματα χρόνου εκτέλεσης. Επιτρέπει στους προγραμματιστές να εκμεταλλευτούν την αλγοριθμική ιδιότητα της σημαντικότητας και την ακρίβεια της απόδοσης εξόδου με βελτιστοποιημένη εκτέλεση κώδικα. Οι προγραμματιστές μπορούν να χαρακτηρίζουν τα διάφορα μέρη του κώδικά τους σε σχέση με τον αντίκτυπό τους στην τελική έξοδο της εφαρμογής. Μετά τον χαρακτηρισμό του κώδικα ως προς τη σημαντικότητα του, οι προγραμματιστές επιλέγουν είτε να εκτελέσουν προσεγγιστικά τα λιγότερο σημαντικά τμήματα του κώδικα τους είτε να τα εκτελέσουν χρησιμοποιώντας εξοπλισμό διαμορφωμένο σε δυνητικά αναξιόπιστα σημεία λειτουργίας. Κατά τη διάρκεια του χρόνου εκτέλεσης, το αντίστοιχο σύστημα χρόνου εκτέλεσης ενορχηστρώνει την εκτέλεση διαφορετικών τμημάτων της εφαρμογής.Οι προγραμματιστές εφαρμογών παρέχουν συμβουλές στα συστήματα χρόνου εκτέλεσης για να καθοδηγήσουν την αντιστοίχιση ακρίβειας / βελτιστοποίησης μέσω της χρήσης μιας μόνο ρύθμισης, του λεγόμενου "ratio". Το ratio χρησιμεύει ως ενιαίο μοχλός για την επιβολή ελάχιστης ποιότητας στο χώρο απόδοσης / ποιότητας / ενεργειακής βελτιστοποίησης. Μικρότερες αναλογίες δίνουν στους χρόνους εκτέλεσης περισσότερες ευκαιρίες για βελτιστοποίηση, αλλά δυστυχώς και μεγαλύτερη πιθανή ποινή στην ποιότητα. Για εφαρμογές που υλοποιούνται υπό τις αρχές της ανοχής σε σφάλματα, οι προγραμματιστές μπορούν να υλοποιήσουν μεθοδολογίες για τον έλεγχο των ενδιάμεσων αποτελεσμάτων και να δώσουν εντολή στο σύστημα χρόνου εκτέλεσης να τις εκτελέσει σε κατάλληλες στιγμές. Στην περίπτωση του μοντέλου προγραμματισμού προσέγγισης, οι προγραμματιστές εφαρμογών μπορούν να παρέχουν στο σύστημα χρόνου εκτέλεσης μια εναλλακτική, κατά προσέγγιση υλοποίηση των εργασιών (approximate tasks) η οποία απαιτεί μειωμένο κόστος εκτέλεσης.Πέρα από τη συζήτηση του βασικού πλαισίου για προσεγγιστικούς υπολογισμούς αλλά και υπολογισμούς ανθεκτικούς σε σφάλματα, παρέχουμε επίσης μεθοδολογίες για την αυτοματοποίηση της διαδικασίας μεταφοράς εφαρμογών σε αυτά τα δύο υποδείγματα υπολογισμών. Βασιζόμαστε σε μια υβριδική, μαθηματικά αυστηρή μεθοδολογία η οποία όμως είναι καθοδηγούμενη από profiling εκτελέσεις και συνδυάζει την αυτόματη αλγοριθμική διαφοροποίηση (algorithmic differentiation) αλλά και την ανάλυση διαστημάτων (interval analysis) για να υπολογίσει την επίδραση επιλεγμένων τμημάτων ενός προγράμματος στην ποιότητα εξόδου του. Εισάγουμε μεθοδολογίες ώστε να εντοπίζονται σημαντικές διαφοροποιήσεις της σημαντικότητας (significance) σε μονοπάτια του κώδικα ώστε να χαρακτηρίζεται η σημαντικότητα υπολογισμών σε αδρότερο βαθμό καταμερισμού (tasks), αλλά και να παρέχεται καθοδήγηση στους προγραμματιστές για την υλοποίηση προσεγγιστικών εναλλακτικών των tasks.Στη συνέχεια, προτείνουμε ένα αναλυτικό μοντέλο για την πρόβλεψη της κατανάλωσης ενέργειας μιας εφαρμογής με διαφορετικά μεγέθη εισόδου και διαμορφώσεις εκτέλεσης. Μία τέτοια διαμόρφωση συμπεριλαμβάνει τον αριθμό των χρησιμοποιούμενων πυρήνων, την συχνότητα του επεξεργαστή καθώς και τον λόγο (ratio) των εργασιών που εκτελούνται με ακρίβεια και κατά προσέγγιση. Το μοντέλο χρησιμοποιείται κατά το χρόνο εκτέλεσης από το σύστημα χρόνου εκτέλεσης για να επιλέξει την καλύτερη διαμόρφωση για έναν προϋπολογισμό ενέργειας που καθορίζεται από τον χρήστη. Μολονότι συζητούμε το μοντέλο στο πλαίσιο της προσεγγιστικής υπολογιστικής, η ίδια μεθοδολογία με ελάχιστες τροποποιήσεις μπορεί να χρησιμοποιηθεί στο πλαίσιο των υπολογισμών ανθεκτικότητας σε σφάλματα.Τέλος, παρουσιάζουμε μια μεθοδολογία για την αυτόματη ανίχνευση σφαλμάτων στις εξόδους των εργασιών, με βάση τα Τεχνητά Νευρωνικά Δίκτυα (ΤΝΔ). Δείχνουμε ότι τα ΤΝΔ μπορεί να είναι αρκετά αποτελεσματικά για τους σκοπούς ανίχνευσης σφαλμάτων. Προσφέρουν έτσι ένα καλό αντιστάθμισμα μεταξύ ακρίβειας στην αναγνώριση σφαλμάτων και κόστους για την εκτέλεσή τους. Ταυτόχρονα, μπορούν να δημιουργηθούν με πολύ αυτοματοποιημένο τρόπο, καθώς απαιτούν περιορισμένη προσπάθεια από τη μεριά του προγραμματιστή εφαρμογών.
Η κατανάλωση ενέργειας αποτελεί έναν περιοριστικό παράγοντα και βασικό μέλημα για το μέλλον των υπολογιστικών συστημάτων. Οι ετερογενείς αρχιτεκτονικές αποτελούν ένα βήμα προς την υλοποίηση πλατφορμών υπολογιστών με μεγάλη απόδοση στους τομείς της ισχύος, επίδοσης, και κατανάλωσης ενέργειας. Φυσικά, η ετερογένεια δεν ισχύει μόνο για το υλικό. Είναι εγγενώς παρούσα και στο επίπεδο του λογισμικού. Όλα τα τμήματα ή οι φάσεις εκτέλεσης ενός προγράμματος δεν επηρεάζουν την ποιότητα των παραγόμενων αποτελεσμάτων στον ίδιο βαθμό. Στην παρούσα διδακτορική διατριβή διερευνώνται τρόποι βελτιστοποίησης των εφαρμογών με βάση αυτή την πτυχή της ετερογένειας του λογισμικού, μέσω της αλγοριθμικής ιδιότητας της σημαντικότητας (significance). Η σημαντικότητα των υπολογισμών είναι μια μετρική που καθορίζει ποιοτικά τον αντίκτυπο συγκεκριμένων υπολογισμών στην ποιότητα εξόδου της εφαρμογής. Εισάγουμε μεθοδολογίες και υλοποιούμε εργαλεία λογισμικού που στοχεύουν στον εντοπισμό και την αξιοποίηση των ευκαιριών για φιλόδοξη βελτιστοποίηση της εκτέλεσης των λιγότερο σημαντικών τμημάτων ενός προγράμματος. Αυτά τα τμήματα μπορεί να έχουν αντίστοιχο κόστος εκτέλεσης με σημαντικότερα τμήματα αλλά δεν επηρεάζουν εξίσου έντονα την ποιότητα εξόδου της εφαρμογής.Δείχνουμε ότι είναι δυνατή η βελτιστοποίηση των εφαρμογών μέσω των αρχών της προσεγγιστικής υπολογιστικής, που κάνει χρήση της αλγοριθμικής ιδιότητας της σημαντικότητας. Εκτός από την προσεγγιστική υπολογιστική, διερευνάμε και μια πιο φιλόδοξη προσέγγιση η οποία βασίζεται στη χρήση αναξιόπιστου υλικού και τις αρχές της ανοχής εφαρμογών σε σφάλματα. Το κίνητρό μας είναι η παρατήρηση ότι οι σχεδιαστές υλικού θυσιάζουν τις επιδόσεις, την ενέργεια και την αποδοτικότητα ισχύος για να διατηρήσουν την ψευδαίσθηση της αξιοπιστίας του υλικού. Κατά συνέπεια, μπορεί κανείς να χαλαρώσει τους περιορισμούς αξιοπιστίας του υλικού για να μειώσει τα σχετικά κόστη του σε ισχύ, απόδοση, καθώς και ενέργεια. Δυστυχώς, το μη αξιόπιστο υλικό μπορεί να επηρεάσει δυσμενώς την ορθότητα της εκτέλεσης των εφαρμογών. Για το σκοπό αυτό, σχεδιάζουμε μεθοδολογίες και υλοποιούμε υποστήριξη λογισμικού που δίνουν την επιλογή σε έναν χρήστη να εκτελέσει τμήματα της εφαρμογής του σε ενεργειακά αποδοτικό, αν και αναξιόπιστο υλικό.Αρχικά, εισάγουμε το βασικό πλαίσιο για τον υπολογισμό της σημαντικότητας. Αυτό συμπεριλαμβάνει ένα ευέλικτο μοντέλο προγραμματισμού και συνοδευτικά συστήματα χρόνου εκτέλεσης. Επιτρέπει στους προγραμματιστές να εκμεταλλευτούν την αλγοριθμική ιδιότητα της σημαντικότητας και την ακρίβεια της απόδοσης εξόδου με βελτιστοποιημένη εκτέλεση κώδικα. Οι προγραμματιστές μπορούν να χαρακτηρίζουν τα διάφορα μέρη του κώδικά τους σε σχέση με τον αντίκτυπό τους στην τελική έξοδο της εφαρμογής. Μετά τον χαρακτηρισμό του κώδικα ως προς τη σημαντικότητα του, οι προγραμματιστές επιλέγουν είτε να εκτελέσουν προσεγγιστικά τα λιγότερο σημαντικά τμήματα του κώδικα τους είτε να τα εκτελέσουν χρησιμοποιώντας εξοπλισμό διαμορφωμένο σε δυνητικά αναξιόπιστα σημεία λειτουργίας. Κατά τη διάρκεια του χρόνου εκτέλεσης, το αντίστοιχο σύστημα χρόνου εκτέλεσης ενορχηστρώνει την εκτέλεση διαφορετικών τμημάτων της εφαρμογής.Οι προγραμματιστές εφαρμογών παρέχουν συμβουλές στα συστήματα χρόνου εκτέλεσης για να καθοδηγήσουν την αντιστοίχιση ακρίβειας / βελτιστοποίησης μέσω της χρήσης μιας μόνο ρύθμισης, του λεγόμενου "ratio". Το ratio χρησιμεύει ως ενιαίο μοχλός για την επιβολή ελάχιστης ποιότητας στο χώρο απόδοσης / ποιότητας / ενεργειακής βελτιστοποίησης. Μικρότερες αναλογίες δίνουν στους χρόνους εκτέλεσης περισσότερες ευκαιρίες για βελτιστοποίηση, αλλά δυστυχώς και μεγαλύτερη πιθανή ποινή στην ποιότητα. Για εφαρμογές που υλοποιούνται υπό τις αρχές της ανοχής σε σφάλματα, οι προγραμματιστές μπορούν να υλοποιήσουν μεθοδολογίες για τον έλεγχο των ενδιάμεσων αποτελεσμάτων και να δώσουν εντολή στο σύστημα χρόνου εκτέλεσης να τις εκτελέσει σε κατάλληλες στιγμές. Στην περίπτωση του μοντέλου προγραμματισμού προσέγγισης, οι προγραμματιστές εφαρμογών μπορούν να παρέχουν στο σύστημα χρόνου εκτέλεσης μια εναλλακτική, κατά προσέγγιση υλοποίηση των εργασιών (approximate tasks) η οποία απαιτεί μειωμένο κόστος εκτέλεσης.Πέρα από τη συζήτηση του βασικού πλαισίου για προσεγγιστικούς υπολογισμούς αλλά και υπολογισμούς ανθεκτικούς σε σφάλματα, παρέχουμε επίσης μεθοδολογίες για την αυτοματοποίηση της διαδικασίας μεταφοράς εφαρμογών σε αυτά τα δύο υποδείγματα υπολογισμών. Βασιζόμαστε σε μια υβριδική, μαθηματικά αυστηρή μεθοδολογία η οποία όμως είναι καθοδηγούμενη από profiling εκτελέσεις και συνδυάζει την αυτόματη αλγοριθμική διαφοροποίηση (algorithmic differentiation) αλλά και την ανάλυση διαστημάτων (interval analysis) για να υπολογίσει την επίδραση επιλεγμένων τμημάτων ενός προγράμματος στην ποιότητα εξόδου του. Εισάγουμε μεθοδολογίες ώστε να εντοπίζονται σημαντικές διαφοροποιήσεις της σημαντικότητας (significance) σε μονοπάτια του κώδικα ώστε να χαρακτηρίζεται η σημαντικότητα υπολογισμών σε αδρότερο βαθμό καταμερισμού (tasks), αλλά και να παρέχεται καθοδήγηση στους προγραμματιστές για την υλοποίηση προσεγγιστικών εναλλακτικών των tasks.Στη συνέχεια, προτείνουμε ένα αναλυτικό μοντέλο για την πρόβλεψη της κατανάλωσης ενέργειας μιας εφαρμογής με διαφορετικά μεγέθη εισόδου και διαμορφώσεις εκτέλεσης. Μία τέτοια διαμόρφωση συμπεριλαμβάνει τον αριθμό των χρησιμοποιούμενων πυρήνων, την συχνότητα του επεξεργαστή καθώς και τον λόγο (ratio) των εργασιών που εκτελούνται με ακρίβεια και κατά προσέγγιση. Το μοντέλο χρησιμοποιείται κατά το χρόνο εκτέλεσης από το σύστημα χρόνου εκτέλεσης για να επιλέξει την καλύτερη διαμόρφωση για έναν προϋπολογισμό ενέργειας που καθορίζεται από τον χρήστη. Μολονότι συζητούμε το μοντέλο στο πλαίσιο της προσεγγιστικής υπολογιστικής, η ίδια μεθοδολογία με ελάχιστες τροποποιήσεις μπορεί να χρησιμοποιηθεί στο πλαίσιο των υπολογισμών ανθεκτικότητας σε σφάλματα.Τέλος, παρουσιάζουμε μια μεθοδολογία για την αυτόματη ανίχνευση σφαλμάτων στις εξόδους των εργασιών, με βάση τα Τεχνητά Νευρωνικά Δίκτυα (ΤΝΔ). Δείχνουμε ότι τα ΤΝΔ μπορεί να είναι αρκετά αποτελεσματικά για τους σκοπούς ανίχνευσης σφαλμάτων. Προσφέρουν έτσι ένα καλό αντιστάθμισμα μεταξύ ακρίβειας στην αναγνώριση σφαλμάτων και κόστους για την εκτέλεσή τους. Ταυτόχρονα, μπορούν να δημιουργηθούν με πολύ αυτοματοποιημένο τρόπο, καθώς απαιτούν περιορισμένη προσπάθεια από τη μεριά του προγραμματιστή εφαρμογών.
Η βιομηχανία των ημιαγωγών έχει βασιστεί τις τελευταίες δεκαετίες στο νόμο τουMoore, ο οποίος προβλέπει κάθε 18 μήνες τον διπλασιασμό του αριθμού των transistorsανά μονάδα επιφάνειας σε ολοκληρωμένα κυκλώματα βασισμένα σε τεχνολογία CMOS. Σεαντιδιαστολή με το παρελθόν (πριν από το 2004), όπου οι σχεδιαστές επεξεργαστικώνσυστημάτων, μέσω της αύξησης του αριθμού των transistor, είχαν ως στόχο τηναντίστοιχη αύξηση της απόδοσης, η νέα πραγματικότητα θέτει την μείωση τηςκατανάλωσης ισχύος (και ενέργειας) ως την μεγαλύτερη πρόκληση στην σχεδίασηεπεξεργαστών.Ταυτόχρονα, η μεγάλη πυκνότητα τοποθέτησης των transistors οδηγούν στηναναξιόπιστη λειτουργία των σύγχρονων επεξεργαστών. Η αναξιοπιστία αυτή οφείλεται ενμέρει στις δυναμικές διακυμάνσεις ρεύματος και τάσης (supply voltage) οι οποίες είναι πιοπιθανό να δημιουργήσουν λάθη χρονισμού σε μικρές γεωμετρίες τεχνολογίας CMOS.Επίσης είναι πιο πιθανά τα κατασκευαστικά λάθη (fabrication faults) λόγω ατελειών τηςδιαδικασίας φωτολιθογραφίας. Επιπλέον, παροδικά λάθη (transient faults) που οφείλονταισε εξωγενείς παράγοντες, όπως alpha particles, έχουν μεγαλύτερη επίδραση σεμικρότερες γεωμετρίες τεχνολογίας CMOS. Για να επιτευχθεί αξιόπιστη λειτουργία υπόαυτές τις συνθήκες, οι σχεδιαστές σύγχρονων επεξεργαστικών συστημάτωνχρησιμοποιούν συντηρητικές σχεδιαστικές τεχνικές, όπως υψηλά περιθώρια τάσηςτροφοδοσίας (Vdd) και συχνότητας ρολογιού έτσι ώστε ο επεξεργαστής να προστατεύεταιαπό κάθε πιθανότητα λαθών χρονισμού. Οι συντηρητικές αυτές τεχνικές μπορεί μεν ναπροστατεύουν την αξιόπιστη λειτουργία του επεξεργαστή, έχουν όμως ως αποτέλεσμαμεγάλη σπατάλη σε ισχύ και ενέργεια η οποία φτάνει μέχρι και το 35% σε αρκετέςπεριπτώσεις.Η βασική ιδέα της παρούσας διδακτορικής διατριβής βασίζεται στο ότι αυτές οισυντηρητικές τεχνικές σχεδιασμού είναι σχεδόν πάντα περιττές και αντιστοιχούν σεπεριπτώσεις λειτουργίας που σχεδόν ποτέ δεν πρόκειται να συμβούν ταυτόχρονα κατά τηνδιάρκεια της λειτουργίας του επεξεργαστή. Χρησιμοποιώντας τεχνικές κυρίως στο επίπεδολογισμικού συστήματος και εφαρμογών, η διατριβή προτείνει την λειτουργία τουεπεξεργαστή πολύ κοντά στις ακραίες καταστάσεις λειτουργίας του και την εξάλειψη τουμεγαλύτερου μέρους του σχεδιαστικού περιθωρίου. Για παράδειγμα, η δυναμική μείωσητης τάσης τροφοδοσίας ενός επεξεργαστή κατά την διάρκεια λειτουργίας του μπορεί ναεπιφέρει μεγάλες βελτιώσεις στην κατανάλωση ισχύος του, αλλά, εφόσον δεν ελεγχθεί,είναι δυνατόν να δημιουργήσει λανθασμένα αποτελέσματα ή και να διακόψει απότομα τηνλειτουργία του. Από την άλλη, η αύξηση της συχνότητας του ρολογιού ενός επεξεργαστή,μπορεί μεν να βελτιώσει την απόδοση και να επιφέρει μείωση του χρόνου εκτέλεσης,αλλά, μπορεί να δημιουργήσει προβλήματα στην αξιοπιστία της λειτουργίας του.Η διατριβή βασίζεται στην ιδέα ότι σε πολλές εφαρμογές (ή επιμέρους φάσειςεφαρμογών) το ακριβές αποτέλεσμα είτε δεν μας ενδιαφέρει, είτε είναι πολύ απαιτητικό σεκύκλους μηχανής και κατανάλωση ενέργειας για να μας συμφέρει να υπολογιστεί.Προτείνουμε ένα νέο προγραμματιστικό μοντέλο στο οποίο ο προγραμματιστής μπορεί ναχαρακτηρίσει την σημαντικότητα των διαφορετικών τμημάτων μιάς εφαρμογής και τηνσυνεισφορά τους στην ποιότητα του τελικού αποτελέσματος. Το προγραμματιστικόμοντέλο επεκτείνει το γνωστό μοντέλο OpenMP που χρησιμοποιείται ευρέως στονπαράλληλο προγραμματισμό. Μέσω της πληροφορίας της σημαντικότητας που παρέχει οπρογραμματιστής σε επίπεδο πηγαίου κώδικα (source code) και μιας επιπλέονπαραμέτρου, που ονομάζεται ratio ο προγραμματιστής μπορεί και ελέγχει την αναλογίατης μείωσης της ενέργειας προς την μείωση της ποιότητας του αποτελέσματος.Η διατριβή υλοποιεί την παραπάνω ιδέα σε δύο διαφορετικούς τομείς υπολογισμών,τον προσεγγιστικό (approximate) τομέα και στον τομέα των ανθεκτικών υπολογισμών σεσφάλματα (fault tolerant). Στον τομέα τον ανθεκτικών υπολογισμών, υλοποιείται ηυποδομή του λογισμικού συστήματος (προγραμματιστικό μοντέλο και σύστημα χρόνουεκτέλεσης) για να καλύψει περιβάλλοντα αναξιόπιστης υπολογιστικής. Η υλοποιήση αυτήαναφέρεται κυρίως στο ότι σε αναξιόπιστα περιβάλλοντα που μπορεί να προκαλούνταιαπο χαμηλότερη τάση τροφοδοσίας ή/και υψηλότερη συχνότητα ρολογιού μπορεί νασυμβεί οποιοδήποτε λάθος στο υλικό το οποίο είναι πέρα από τον έλεγχο τουπρογραμματιστή. Αυτό επιβάλλει την ύπαρξη μηχανισμών αναγνώρισης και διόρθωσηςλαθών καθώς και μηχανισμούς απομόνωσης λαθών ώστε αυτά να μην επεκταθούν σεσημεία του κώδικα που μπορεί να είναι κρίσιμα για την σωστότητα της εφαρμογής. Οιμηχανισμοί αυτοί θα πρέπει να έχουν όσο το δυνατόν υψηλότερο ποσοστό ανίχνευσηςλαθών, αλλά και μικρή επιβάρυνση στην απόδοση της εφαρμογής. Η διατριβή προτείνει και υλοποιεί αναλυτικά μοντέλα απόδοσης και κατανάλωσηςενέργειας σε πολυπύρηνους επεξεργαστές. Πολύ σημαντική επίσης είναι και η αναλυτικήμοντελοποίηση των λαθών χρονισμού (fault modeling) που συμβαίνουν σε ένανεπεξεργαστή σε συνάρτηση με την τάση τροφοδοσίας του επεξεργαστή αυτού. Το πλήρεςσύστημα λογισμικού αξιόπιστης υπολογιστικής, μαζί με τα μοντέλα αυτά,χρησιμοποιούνται σε εκτεταμένες προσομοιώσεις εφαρμογών στον προσομοιωτή GemFIγια την εκτίμηση της βελτίωσης κατανάλωση ενέργειας (λόγω μειωμένης τάσηςτροφοδοσίας) χωρίς αλλοίωση των τελικών αποτελεσμάτων του υπολογισμού και χωρίςδιακοπή της λειτουργίας του επεξεργαστή. Τα πειράματα έδειξαν ότι μπορούμε ναμειώσουμε την τάση τροφοδοσίας ενός επεξεργαστή κατά μέσο όρο 15% μέχρι ναφτάσουμε στο Point of First Failure (PoFF), κάτω από το οποίο ο επεξεργαστής εκτίθεταισε μαζικά λάθη χρονισμού και είναι αδύνατη (ή ασύμφορη) κάθε προσπάθεια λειτουργίαςτου. Το σύστημα λογισμικού αξιόπιστης υπολογιστικής επιτρέπει την μείωση της τάσηςτροφοδοσίας μέχρι το PoFF (αλλά όχι πιο χαμηλά) αντιμετωπίζοντας επιτυχώς τα λάθηπου εμφανίζονται στην περιοχή αυτή και επιτυγχάνοντας μεγάλη μείωση της κατανάλωσηςισχύος/ενέργειας χωρίς επίπτωση στην ταχύτητα του επεξεργαστή. ́Οσον αφορά τον προσεγγιστικό τομέα, προτείνουμε και υλοποιούμε ένα παρόμοιοπρογραμματιστικό μοντέλο και ενα σύστημα χρόνου εκτέλεσης (run time system), το οποίοχρησιμοποιώντας αναλυτικά μοντέλα της απόδοσης και κατανάλωσης ισχύος τουεπεξεργαστή παίρνει ενημερωμένες αποφάσεις για τη ροή και το συντονισμό τηςεκτέλεσης του προγράμματος. Ο μηχανισμός αυτός επιτρέπει στον προγραμματιστή ναπροσαρμόσει δυναμικά την ποιότητα των αποτελεσμάτων μιας εφαρμογής με τηναπόδοση του συστήματος και την κατανάλωση ισχύος/ενέργειας.Για πολλες εφαρμογές όμως, είναι απαραίτητοι οι ακριβείς υπολογισμοί καθώς δενανέχονται μείωση της ποιότητας του αποτελέσματος. Επομένως, μέσω μιάς σειράςπειραμάτων σε Intel x86-64 επεξεργαστές αναγνωρίσαμε την μέγιστη μείωση της τάσηςτροφοδοσίας έτσι ώστε ο επεξεργαστής να παραμένει σε ασφαλή ζώνη λειτουργίας (χωρίςσφάλματα). Τα πειράματα αυτά φανέρωσαν ότι τα περιθώρια μείωσης της τάσης φτάνουν μέχρι 22% για επεξεργαστές Skylake και 13% για Haswell.Η παραπάνω ανάλυση των περιθωρίων τάσης έδωσαν την δυνατότητα ναδημιουργηθεί ένα μοντέλο μηχανικής μάθησης που χρησιμοποιήθηκε για την πρόβλεψημελλοντικών περιθωρίων τάσης τροφοδοσίας. Το μοντέλο αυτό δέχεται σαν είσοδο τιμέςτων performance counters του επεξεργαστή (ενώ το πρόγραμμα εκτελείται) και προβλέπειτο περιθώριο τάσης για το επόμενο χρονικό διάστημα. Με άλλα λόγια, η διατριβή αυτή έχειδείξει πειραματικά την συσχέτιση μεταξύ γεγονότων σε επίπεδο μικροαρχιτεκτονικής(όπως αυτά περιγράφονται από τους performance counters του επεξεργαστή) και τουμέγιστου περιθωρίου τάσης τροφοδοσίας. Το μοντέλο αυτό χρησιμοποιείται από ένανεξελιγμένο governor τάσης/συχνότητας που ορίζει κάθε φορά την τάση του επεξεργαστήώστε να επιτυγχάνουμε μεγάλη μείωση στην κατανάλωση ισχύος χωρίς τον κίνδυνομειωμένης αξιοπιστίας. Σε σύγκριση με τον συμβατικό Intel DVFS (Dynamic VoltageFrequency Scaling) governor, η μέθοδός μας επιτυγχάνει μείωση ενέργειας κατά 42% σεεπεξεργαστές Skylake και 34% σε επεξεργαστές Haswell.Η διατριβή αυτή επίσης μελέτησε την επίδραση που έχουν στα περιθώρια τάσηςτροφοδοσίας οι βελτιστοποιήσεις που κάνουν οι μεταγλωττιστές στον κώδικα μιαςεφαρμογής. Με τη χρήση του εργαλείου XM2 διαπιστώθηκε ότι οι μετασχηματισμοί πουμειώνουν τις προσπελάσεις στην κύρια μνήμη έχουν μεγάλη επίδραση στα περιθώρια τηςτάση τροφοδοσίας. Σε γενικές γραμμές όμως, η τάση τροφοδοσίας είναι περισσότεροσυνάρτηση της μικροαρχιτεκτονικής του επεξεργαστή παρά των βελτιστοποίησεων στονκώδικα που επιφέρει ο compiler.Η διδακτορική διατριβή δημιούργησε επίσης την ερευνητική υποδομή για ταπειράματα που διεξήχθησαν στα πλαίσια της αξιολόγησης των τεχνικών πουπεριγράφησαν στις προηγούμενες παραγράφους. Το GemFI είναι ένα εργαλείοδημιουργίας και προσομοίωσης λογικών λαθών σε ένα πολυπύρηνο επεξεργαστικόσύστημα. Δίνει την δυνατότητα στο χρήστη να εισάγει διάφορους τύπους λαθών, σεοποιαδήποτε χρονική στιγμή κατά τη διάρκεια εκτέλεσης του προγράμματος, και σεοποιοδήποτε τμήμα της αρχιτεκτονικής του επεξεργαστή. Το GemFI, το οποίο βασίζεταιστο γνωστό προσομοιωτή Gem5, μπορεί να εκτελέσει πλήρως το λογισμικό εφαρμογώνκαι συστήματος για μεγάλη γκάμα διαφορετικών αρχιτεκτονικών, δίνοντας έτσι τηδυνατότητα μελέτης της αξιοπιστίας του συστήματος κάτω απο διαφορετικές συνθήκες.Επίσης δημιουργήθηκε ένα δεύτερο εργαλείο, ο eXtended Margins eXperimentManager (ΧΜ2) που αυτοματοποιεί τη δημιουργία πειραμάτων σε πραγματικούςεπεξεργαστές που μπορούν να τίθενται σε μη-αξιόπιστες καταστάσεις τάσης καισυχνότητας. Το εργαλείο χρησιμοποιήθηκε για την δημιουργία τέτοιων πειραμάτων για τονχαρακτηρισμό της αξιοπιστίας του υλικού και για τον προσδιορισμό της ανοχής σε λάθηλογισμικού εφαρμογών που εκτελούνται σε επεξεργαστές x86-64 (Skylake, Haswell) καιARM
Approximate execution is a viable technique for environments with energy constraints, provided that applications are given the mechanisms to produce outputs of the highest possible quality within the available energy budget. This paper introduces a framework for energy-constrained execution with controlled and graceful quality loss. A simple programming model allows developers to structure the computation in different tasks, and to express the relative importance of these tasks for the quality of the end result. For non-significant tasks, the developer can also supply less costly, approximate versions. The target energy consumption for a given execution is specified when the application is launched. A significance-aware runtime system employs an application-specific analytical energy model to decide how many cores to use for the execution, the operating frequency for these cores, as well as the degree of task approximation, so as to maximize the quality of the output while meeting the user-specified energy constraints.Evaluation on a dual-socket 16-core Intel platform using 9 kernels and applications shows that the proposed framework performs very close to an oracle always selecting the optimal configuration, both in terms of energy efficiency and quality of results. Also, a comparison with loop perforation (a well-known compile-time approximation technique), shows that the proposed framework results in significantly higher quality for the same energy budget.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.