dc.contributor.author |
Στρατή, Φωτεινή
|
el |
dc.contributor.author |
Strati, Foteini
|
en |
dc.date.accessioned |
2019-05-20T09:06:30Z |
|
dc.date.available |
2019-05-20T09:06:30Z |
|
dc.date.issued |
2019-05-20 |
|
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/48786 |
|
dc.identifier.uri |
http://dx.doi.org/10.26240/heal.ntua.16537 |
|
dc.rights |
Default License |
|
dc.subject |
Παράλληλες δομές δεδομένων |
el |
dc.subject |
Ουρές προτεραιότητας |
el |
dc.subject |
Ανομοιόμορφη πρόσβαση μνήμης |
el |
dc.subject |
Κλιμακωσιμότητα |
el |
dc.subject |
Μηχανική μάθηση |
el |
dc.subject |
Concurrent data structures |
en |
dc.subject |
Priority queues |
en |
dc.subject |
Non-uniform memory access |
en |
dc.subject |
Scalability |
en |
dc.subject |
Machine learning |
en |
dc.title |
Μελέτη και σχεδίαση παράλληλων ουρών προτεραιότητας σε αρχιτεκτονικές ανομοιόμορφης πρόσβασης μνήμης (NUMA) |
el |
heal.type |
bachelorThesis |
|
heal.classification |
Παράλληλοι αλγόριθμοι |
el |
heal.classification |
Ανάλυση και προγραμματισμός |
el |
heal.classificationURI |
http://data.seab.gr/concepts/9583c1c66ce6e0b1ef3896e1791df755769272b2 |
|
heal.language |
el |
|
heal.language |
en |
|
heal.access |
free |
|
heal.recordProvider |
ntua |
el |
heal.publicationDate |
2018-12-13 |
|
heal.abstract |
Στις μέρες μας, τα πολυπήρυνα συστήματα αποτελούνται κυρίως από αρχιτεκτονικές ανο-μοιόμορφης πρόσβασης μνήμης (NUMA). Η υψηλή απόδοση και η κλιμακωσιμότητα είναι ζητούμενα των σύγχρονων εφαρμογών, οι οποίες βασίζονται σε παράλληλους αλγορίθμους δομών δεδομένων. Ο σχεδιασμός των αλγορίθμων αυτών θα πρέπει να γίνεται με γνώμονα τα χαρακτηριστικά των σύγχρονων αρχιτεκτονικών. Αντικείμενο της παρούσας διπλωματικής είναι οι παράλληλες δομές δεδομένων, και κυρίως οι ουρές προτεραιότητας. Μελετάμε και αξιολογούμε σε αρχιτεκτονικές ανομοιόμοφης πρόσβασης μνήμης έναν μεγάλο αριθμό παράλληλων υλοποιήσεων, κάποιες απο τις οποίες είναι ειδικά σχεδιασμένες για numa συστήματα (numa-aware υλοποιήσεις). Προτείνουμε μία νέα numa-aware ουρά προτεραιότητας (αλγόριθμος NUDDLE), η οποία αξιοποιεί τα χαρακτηριστικά των αρχιτεκτονικών τύπου ΝUMA και οδηγεί σε καλύτερα αποτελέσματα όταν ο ανταγωνισμός μεταξύ των νημάτων είναι έντονος. Παρόλα αυτά, σε εφαρμογές που χαρακτηρίζονται από υψηλά επίπεδα παραλληλισμού, οι non-numa-aware υλοποιήσεις επιτυγχάνουν μεγαλύτερη απόδοση. Συμπεραίνουμε, λοιπόν, ότι δεν υπάρχει μια ιδανική δομή δεδομένων και οτι οι συνθήκες στις οποίες εκτελείται μια εφαρμογή είναι αυτές που καθορίζουν το είδος του αλγορίθμου που πρέπει να χρησιμοποιηθεί. Στην προσπάθειά μας να προσεγγίσουμε τη λειτουργία μιας ιδανικής δομής, μοντελοποιούμε το πρόβλημα της επιλογής του καλύτερου αλγορίθμου και χρησιμοποιούμε τεχνικές μηχανικής μάθησης για να το επιλύσουμε. Πιο συγκεκριμένα, θεωρούμε δύο κλάσεις υλοποιήσεων (numa-aware και non-numa-aware) και προτείνουμε ένα μοντέλο βασισμένο σε δέντρα αποφάσεων, το οποίο αφού εκπαιδευτεί σε ένα ευρύ φάσμα πειραμάτων, κατηγοροιοποιεί τα διάφορα περιβάλλοντα εκτέλεσης στις δύο κλάσσεις με αρκετά υψηλή ακρίβεια. Στη συνέχεια, χρησιμοποιούμε αυτό το μοντέλο για να δημιουργήσουμε μια δυναμική δομή δεδομένων, η οποία, εξετάζοντας τις συνθήκες κάτω από τις οποίες εκτελείται, μπορεί να μεταβεί εύκολα και γρήγορα από numa-aware σε non-numa-aware αλγόριθμο επιτυγχάνοντας έτσι τη βέλτιστη δυνατή απόδοση. Η μεθοδολογία αυτή, πιστεύουμε ότι μπορεί να επεκταθεί και να χρησιμοποιηθεί για το σχεδιασμό και άλλων παράλληλων δομών δεδομένων, οι οποίες θα μπορούν να προσαρμόζονται στο εκάστοτε περιβάλλον, να αξιοποιούν τα χαρακτηριστικά της κάθε αρχιτεκτονικής και άρα να παρουσιάζουν τα βέλτιστα δυνατά αποτελέσματα. |
el |
heal.abstract |
Nowadays, modern multicore processors are part of every computer system, and they are based on Non-Uniform Memory Access (NUMA) architectures. In order to fully leverage these machines, researchers should design efficient and scalable concurrent data structures that are aware of NUMA performance artifacts. In this thesis, we study both NUMA-oblivious and NUMA-aware concurrent data structures, particularly focusing on priority queues. We evaluate the scalability of the most known state-of-the-art concurrent priority queues on NUMA architectures, and propose a NUMA-aware concurrent priority queue, named NUDDLE, that outperforms state-of-the-art algorithms when contention between threads is high. However, in highly parallel benchmark configurations, NUDDLE performs poorly compared to numa-oblivious algorithms. Our experiments point that there is not an one-size-fits-all solution, since the profile of the application determines whether a numa-aware or a numa-oblivious implementation is more efficient. Towards that direction, we propose a self-aware concurrent priority queue. We formulate NUMA awareness as a classification problem and employ machine learning techniques to predict the more performant algorithm between a NUMA-aware and a NUMA-oblivious concurrent priority queue. We create a highly accurate profile-guided Decision Tree Classifier, trained on various microbenchmarks, that predicts the most appropriate algorithm taking as input the configurations of the execution. This classifier is utilized to create an adaptive priority queue, that according to its profile configurations can switch from numa-aware to non numa-aware implementation and vice versa when needed and achieve the highest available performance for all configuration workloads. We believe our methodology constitutes a general direction towards the design of dynamically adaptive concurrent data structures that perform best under all circumstances. |
en |
heal.advisorName |
Γκούμας, Γεώργιος |
el |
heal.committeeMemberName |
Γκούμας, Γεώργιος |
el |
heal.committeeMemberName |
Κοζύρης, Νεκτάριος |
el |
heal.committeeMemberName |
Παπασπύρου, Νικόλαος |
el |
heal.academicPublisher |
Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών |
el |
heal.academicPublisherID |
ntua |
|
heal.numberOfPages |
133 σ. |
|
heal.fullTextAvailability |
true |
|