|
Κωδικός Πόρου |
000408209 |
Τίτλος |
Java™ on Scalable Memory Architectures |
Άλλος τίτλος |
Η Java™ σε Κλιμακώσιμες Αρχιτεκτονικές Μνημών |
Συγγραφέας
|
Ζακκάκ, Φοίβος Σάμι
|
Σύμβουλος διατριβής
|
Μπίλας, Άγγελος
|
Μέλος κριτικής επιτροπής
|
Πρατικάκης, Πολύβιος
Κατεβαίνης, Μανόλης
Φατούρου, Παναγιώτα
Νικολόπουλος, Δημήτριος
Μαρκάτος, Ευάγγελος
Κουταβάς, Βασίλειος
|
Περίληψη |
Η αρχή της χιλιετίας που διανύουμε σήμανε την ανάγκη αναζήτησης νέων μεθόδων
για
τη
συνέχιση
της βελτίωσης της απόδοσης των επεξεργαστών. Η μέθοδος της
αύξησης της συχνότητας των επεξεργαστών καθώς τα τρανζίστορ γίνονται ολοένα και
μικρότερα δεν είναι πλέον εφικτή, λόγο της ολοένα αυξανόμενης διαρροής ρεύματος
και παραγωγής θερμότητας. Στην προσπάθεια τους να διατηρήσουν τους ρυθμούς
βελτίωσης της απόδοσης των επεξεργαστών, οι κατασκευαστές επεξεργαστών
στράφηκαν προς τον σχεδιασμό πολυπύρηνων επεξεργαστών. Με αυτό τον τρόπο η
βιομηχανία εξακολουθεί να εκμεταλλεύεται το ολοένα μικρότερο μέγεθος των
τρανζίστορ, περιλαμβάνοντας περισσότερα επεξεργαστικά στοιχεία στον ίδιο χώρο
αντί να αυξάνουν την πολυπλοκότητα των κυκλωμάτων
και
την συχνότητα εναλλαγής
καταστάσεων. Καθώς όμως το πλήθος
των πυρήνων αυξάνεται,
εμφανίζονται νέες
προκλήσεις. Μία τέτοια πρόκληση αφορά την παροχή συνέπειας μνήμης. Η
διαχείριση των κρυφών μνημών και η διατήρηση συνεπών αντιγραφών σε αυτές
γίνεται ολοένα και πιο περίπλοκη και ενεργειακά μη αποδοτική καθώς το πλήθος των
πυρήνων αυξάνεται. Για να αντιμετωπίσουν αυτό το πρόβλημα, οι αρχιτέκτονες
υπολογιστών πειραματίζονται με νέες αρχιτεκτονικές που παρέχουν συνέπεια
μνήμης μόνο μεταξύ ενός υποσυνόλου των κρυφών μνημών ή και καθόλου. Αυτές οι
αρχιτεκτονικές αναθέτουν
τη
διαχείριση μνήμης στο λογισμικό.
Στη
διατριβή αυτή μελετάμε πως μπορούν να τρέξουν γλώσσες προγραμματισμού
υψηλού επιπέδου σε τέτοιες αρχιτεκτονικές. Οι γλώσσες προγραμματισμού υψηλού
επιπέδου, όπως η
Java,
είναι σχεδιασμένες να αποκρύπτουν τις λεπτομέρειες της
αρχιτεκτονικής από τους προγραμματιστές. Με αυτόν
τον
τρόπο επιτρέπουν στους
προγραμματιστές να επικεντρωθούν στην υλοποίηση των αλγορίθμων τους και όχι
στην διαχείριση της εκάστοτε αρχιτεκτονικής. Οι γλώσσες προγραμματισμού υψηλού
επιπέδου βασίζονται σε εικονικές μηχανές για να παρέχουν τα ίδια αποτελέσματα σε
διαφορετικές αρχιτεκτονικές. Στην εργασία μας επικεντρωνόμαστε στην εικονική
μηχανή της
Java.
Η εικονική μηχανή της
Java
είναι μία από τις πιο δημοφιλείς και
πολυμελετημένες εικονικές μηχανές η οποία υλοποιεί δεκάδες γλώσσες
προγραμματισμού, από τις οποίες ξεχωρίζουν κυρίως η
Java
και η
Scala.
Οι υλοποιήσεις εικονικών μηχανών
Java
πρέπει να συμμορφώνονται στον ορισμό της
γλώσσας προγραμματισμού
Java (Java language specification)
και στο μοντέλο μνήμης
της
(Java Memory Model).
Στην εργασία αυτή μελετάμε το μοντέλο μνήμης της
Java
και παρουσιάζουμε μία επέκταση του που εκφράζει ρητά τις μεταφορές δεδομένων
μεταξύ των κρυφών μνημών. Η επέκταση αυτή παρέχει ρητούς κανόνες που αφορούν
τις μεταφορές δεδομένων μεταξύ των κρυφών μνημών οι οποίοι διευκολύνουν την
επιχειρηματολογία σχετικά με την συμμόρφωση μίας εικονικής μηχανής
Java
στο
μοντέλο μνήμης της
Java.
Ακόμη αποδεικνύουμε ότι η επέκταση αυτή είναι συμβατή
με το αρχικό μοντέλο μνήμης της
Java
και επιτρέπει τις ίδιες βελτιστοποιήσεις κώδικα.
Επιπροσθέτως σχεδιάζουμε μία εικονική μηχανή
Java
για αρχιτεκτονικές με μερική ή
μηδενική
συνέπεια μνήμης. Ο σχεδιασμός μας στοχεύει στην ελαχιστοποίηση των
μεταφορών δεδομένων και ανταλλαγών μηνυμάτων που
χρειάζονται για
τη
συμμόρφωση στο μοντέλο μνήμης της
Java.
Ο σχεδιασμός μας εκμεταλλεύεται
αρχιτεκτονικές με μερική συνέπεια μνήμης χρησιμοποιώντας μερικές κοινές δομές
μεταξύ πυρήνων που βρίσκονται στην ίδια συστάδα πυρήνων με συνέπεια μνήμης.
Βασιζόμενοι στον σχεδιασμό αυτό υλοποιούμε μία εικονική μηχανή
Java
και την
αξιολογούμε τρέχοντας πειράματα σε έναν εξομοιωτή αρχιτεκτονικής χωρίς συνέπεια
μνήμης. Τα αποτελέσματα δείχνουν ότι η υλοποίηση μας κλιμακώνεται
μέχρι και σε
500 πυρήνες και η κλιμακωσιμότητα της είναι συγκρίσιμη με αυτή της πιο πρόσφατης
εικονικής μηχανής
Java (HotSpot VM)
σε μία αρχιτεκτονική με συνέπεια μνήμης.
Τέλος εκφράζουμε με μαθηματικό τρόπο την υλοποίησή μας και αποδεικνύουμε ότι
παράγει μόνο σωστές εκτελέσεις, σύμφωνα με το μοντέλο μνήμης και τον ορισμό της
γλώσσας.
|
Φυσική περιγραφή |
xv, 184 σ. : σχεδ., πιν., εικ. (μερ. έγχ.) ; 30 εκ. |
Γλώσσα |
Αγγλικά |
Ημερομηνία έκδοσης |
2017-03-17 |
Συλλογή
|
Σχολή/Τμήμα--Σχολή Θετικών και Τεχνολογικών Επιστημών--Τμήμα Επιστήμης Υπολογιστών--Διδακτορικές διατριβές
|
|
Τύπος Εργασίας--Διδακτορικές διατριβές
|
Εμφανίσεις |
772 |