dc.contributor.author |
Γιαννούλα, Χριστίνα Χρ.
|
el |
dc.contributor.author |
Giannoula, Christina Chr.
|
en |
dc.date.accessioned |
2016-09-14T11:39:25Z |
|
dc.date.available |
2016-09-14T11:39:25Z |
|
dc.date.issued |
2016-09-14 |
|
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/43518 |
|
dc.identifier.uri |
http://dx.doi.org/10.26240/heal.ntua.9414 |
|
dc.rights |
Default License |
|
dc.subject |
Παράλληλες δομές δεδομένων |
el |
dc.subject |
Δυαδικά δέντρα αναζήτησης |
el |
dc.subject |
Δυαδικά δέντρα αναζήτησης |
el |
dc.subject |
Κλιμακωσιμότητα |
el |
dc.subject |
Παράλληλος προγραμματισμός |
el |
dc.subject |
Αλγόριθμος του Dijkstra |
el |
dc.subject |
Helper threads |
en |
dc.subject |
Hardware transactional memory |
en |
dc.title |
Μελέτη και αξιολόγηση τεχνικών παραλληλοποίησης δομών δεδομένων και αλγορίθμων |
el |
heal.type |
bachelorThesis |
|
heal.secondaryTitle |
Parallelization techniques in data structures and algorithms |
en |
heal.classification |
Παράλληλοι αλγόριθμοι, ανάλυση και προγραμματισμός |
el |
heal.classification |
Ταυτοχρονισμός και παραλληλισμός |
el |
heal.classification |
Παραλληλισμός |
el |
heal.classification |
Παράλληλη αρχιτεκτονική |
el |
heal.classification |
Βασικές δομές δεδομένων |
el |
heal.classification |
Parallelism fundamentals |
en |
heal.classification |
Data structures (Computer science)--Congresses |
en |
heal.classification |
Parallelism |
en |
heal.classification |
Parallel computers |
en |
heal.classification |
Concurrency and parallelism |
en |
heal.classificationURI |
http://data.seab.gr/concepts/9583c1c66ce6e0b1ef3896e1791df755769272b2 |
|
heal.classificationURI |
http://data.seab.gr/concepts/c926feba437a8b1179bd98f6e021984f68500254 |
|
heal.classificationURI |
http://data.seab.gr/concepts/8f1685b3cb44b04640f6061e60f694735903901f |
|
heal.classificationURI |
http://data.seab.gr/concepts/3cc27a0e031ced6d3d6ff18d375e93393c29d431 |
|
heal.classificationURI |
http://data.seab.gr/concepts/ce20893b5464bf83cbb5cf7c0ec4e9b5affd8fa5 |
|
heal.classificationURI |
http://data.seab.gr/concepts/9fa03c66ac4ea9ec21b6098ba43e9b00b5292ee0 |
|
heal.classificationURI |
http://id.loc.gov/authorities/subjects/sh2009122874 |
|
heal.classificationURI |
http://id.loc.gov/authorities/subjects/sh00006627 |
|
heal.classificationURI |
http://id.loc.gov/authorities/subjects/sh89004421 |
|
heal.classificationURI |
http://data.seab.gr/concepts/c926feba437a8b1179bd98f6e021984f68500254 |
|
heal.language |
el |
|
heal.language |
en |
|
heal.access |
free |
|
heal.recordProvider |
ntua |
el |
heal.publicationDate |
2016-07-14 |
|
heal.abstract |
Στις μέρες μας, οι πολυπύρηνοι επεξεργαστές έχουν γίνει η κυρίαρχη πλατφόρμα υπολογισμών και έχουν εισαχθεί σε πολλά προγραμματιστικά περιβάλλοντα. Ο παράλληλος προγραμματισμος δεν αφορά πλέον μόνο επιστημονικές εφαρμογές που τρέχουν σε υπερυπολογιστές, αλλά καλύπτει επίσης ένα μεγάλο φάσμα εφαρμογών για προσωπικούς υπολογιστές. Ένα από τα πιο δύσκολα προβλήματα στα συστήματα παράλληλης επεξεργασίας είναι η ανάπτυξη παράλληλου λογισμικού το οποίο κλιμακώνει αποδοτικά. Αρκετές εφαρμογές δεν κλιμακώνουν μετά από έναν αριθμό επεξεργαστών εξαιτίας του αυξημένου κόστους επικοινωνίας. Προκειμένου να αξιοποιηθούν οι διαθέσιμες αρχιτεκτονικές, οι βασικές δομές δεδομένων και οι σειριακοί αλγόριθμοι πρέπει να επανασχεδιασθούν. Το πρώτο μέρος αυτής της διπλωματικής αφορά τις παράλληλες δομές δεδομένων, με ιδιαίτερη έμφαση στα δυαδικά δέντρα αναζήτησης, εξετάζοντας τον τρόπο συγχρονισμού τους, τα ιδιαίτερα χαρακτηριστικά τους και την κλιμακωσιμότητα που προσφέρουν. Στο δεύτερο μέρος της διπλωματικής παρουσιάζεται μια παραλληλοποίηση του αλγορίθμου του Dijkstra που είναι ένας σειριακός αλγόριθμος. Αυτή η υλοποίηση χρησιμοποιεί Transactional Memory, για να συντονίσει αποτελεσματικά τις ταυτόχρονες προσβάσεις των νημάτων στις κοινές δομές δεδομένων και την έννοια των Helper Threads, για να εξάγει παραλληλισμό. Η αξιολόγηση του αλγορίθμου γίνεται σε ένα σύστημα που υποστηρίζει Hardware Transactional Memory. |
el |
heal.abstract |
Nowadays, multicore processors have become the dominant computing platform and are being used by many programming environments. Parallel programming is no longer about scientific applications run in supercomputers, but covers a wider range of applications on personal computers, too. The most difficult problem is to develop parallel software that scales efficiently. Several applications do not scale further than a number of processors due to communication overhead. To exploit the available architectures basic data structures and sequential algorithms must be redesigned. In the first part of this thesis we study concurrent data structures, particularly focusing on concurrent binary search trees, with respect to the way they are synchronized, their special characteristics and the scalability they provide. The second part of this thesis presents a parallelization of the inherently serial Dijkstra's algorithm. This implementation employs Transactional Memory to efficiently orchestrate the concurrent thread's accesses to shared data structures and the concept of Helper Threads to extract parallelism. We evaluate the execution of the algorithm on a system that supports Hardware Transactional Memory. |
en |
heal.advisorName |
Γκούμας, Γεώργιος |
el |
heal.committeeMemberName |
Γκούμας, Γεώργιος |
el |
heal.committeeMemberName |
Κοζύρης, Νεκτάριος |
el |
heal.committeeMemberName |
Σαγώνας, Κωνσταντίνος |
el |
heal.academicPublisher |
Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Υπολογιστικών Συστημάτων |
el |
heal.academicPublisherID |
ntua |
|
heal.numberOfPages |
229 σ. |
|
heal.fullTextAvailability |
true |
|