dc.contributor.author | Γαλανόπουλος, Δημήτρης![]() |
el |
dc.contributor.author | Galanopoulos, Dimitris![]() |
en |
dc.date.accessioned | 2020-09-08T11:01:16Z | |
dc.date.available | 2020-09-08T11:01:16Z | |
dc.identifier.uri | https://dspace.lib.ntua.gr/xmlui/handle/123456789/51069 | |
dc.identifier.uri | http://dx.doi.org/10.26240/heal.ntua.18767 | |
dc.rights | Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ | * |
dc.subject | Κοινή μνήμη | el |
dc.subject | Shared memory | en |
dc.subject | OpenMP | en |
dc.subject | Δρομολόγηση | el |
dc.subject | Scheduling | en |
dc.subject | Τοπικότητα | el |
dc.subject | Locality | en |
dc.subject | NUMA | en |
dc.subject | OpenMP | en |
dc.title | Επέκταση των τεχνικών δρομολόγησης του προγραμματιστικού μοντέλου OpenMP | el |
heal.type | bachelorThesis | |
heal.classification | Παράλληλη επεξεργασία | el |
heal.classification | Parallel processing | en |
heal.language | el | |
heal.access | free | |
heal.recordProvider | ntua | el |
heal.publicationDate | 2020-02-18 | |
heal.abstract | Στην εποχή της ανάλυσης ‘Μεγάλων Δεδομένων’ (Big Data) και των νευρωνικών δικτύων αναδεικνύεται όλο και πιο έντονα η ανάγκη ενίσχυσης της τοπικότητας των δεδομένων και της εύρεσης μεγαλύτερης παραλληλίας στα σύγχρονα προγράμματα. Παράλληλα, η συνεχόμενη αύξηση των επεξεργαστικών μονάδων των υπολογιστών και η ένταση των φαινομένων μη ομοιόμορφης προσπέλασης της μνήμης (NUMA) καθιστούν τον άμεσο χειρισμό των νημάτων (threads) από τους ίδιους τους προγραμματιστές μία αρκετά δύσκολη και χρονοβόρα εργασία. Πάνω σε αυτήν τη βάση, προτείνεται το “hierarchical schedule” (ή ιεραρχική δρομολόγηση), μια μέθοδος αυτοματοποίησης της οργάνωση των νημάτων (threads) σε οριζόμενες από το χρήστη ομάδες (groups), αλλά και διαμοιρασμού της εργασίας σε αυτές. Είναι βασισμένο στην ευρέως διαδεδομένη πλατφόρμα ανάπτυξης παράλληλων προγραμμάτων OpenMP [1] και αποτελεί επέκταση της λειτουργικότητας της. Συγκεκριμένα, προσθέτει μία επιπλέον πολιτική δρομολόγησης (scheduling) δυναμικού διαμοιρασμού της εργασίας των παράλληλων for βρόχων του OpenMP (omp parallel for), η οποία λαμβάνει υπόψιν τα NUMA χαρακτηριστικά του μηχανήματος και διατηρεί την τοπικότητα του κώδικα, ενώ παράλληλα προσφέρει στο χρήστη περισσότερες δυνατότητες ελέγχου των threads. Η υλοποίηση έγινε επεκτείνοντας τον κώδικα του μεταγλωττιστή gcc (στην έκδοση 8.3.0). Στο τέλος μελετάται η συμπεριφορά του hierarchical schedule σε ένα σύνολο διαφόρων ειδών φόρτου εργασίας, και συγκρίνεται η επίδοσή του σε σχέση με τα άλλα schedules του OpenMP. Οι μετρήσεις έγιναν σε ένα intel μηχάνημα τεσσάρων Xeon E5-4620 επεξεργαστών, όπου κάθε ένας ανήκε σε έναν διαφορετικό NUMA κόμβο μνήμης των 64GB (ώστε συνολικά να έχουμε 256GB μνήμης). | el |
heal.abstract | In the era of Big Data analysis and neural networks, the need for greater data locality and finer-grained parallelism becomes increasingly important. Due to the constant rise in the number of cores per processor and the intensity of NUMA effects, manual handling of threads has become a lot more demanding and time consuming. Based on these facts, we propose “hierarchical schedule”, a method of automating the organization of threads into groups and the act of work sharing between them. This work is based on the OpenMP library [1], a widely used platform for shared memory parallel programming. More specifically, it adds a new dynamic scheduling policy for the “parallel for” constructs, which takes into account the NUMA characteristics of the machine and retains the locality of the code as much as possible, while giving the user finer-grained control over the threads. The actual implementation was done by extending the gcc compiler (version 8.3.0). We conclude by studying the behavior of hierarchical schedule over a variety of work loads, and compare it’s performance to that of the other OpenMP schedules. All our measurements were taken on an intel machine with four Xeon E5-4620 cpus, each one belonging to a different 64GB NUMA memory node (for a total of 256GB of memory). | en |
heal.advisorName | Γκούμας, Γεώργιος | el |
heal.committeeMemberName | Γκούμας, Γεώργιος | el |
heal.committeeMemberName | Κοζύρης, Νεκτάριος | el |
heal.committeeMemberName | Πνευματικάτος, Διονύσιος | el |
heal.academicPublisher | Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών | el |
heal.academicPublisherID | ntua | |
heal.numberOfPages | 82 σ. | |
heal.fullTextAvailability | false |
Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο: