HEAL DSpace

Σχεδιασμός και υλοποίηση συστήματος STM με γρήγορη πρόσβαση μεταδεδομένων

DSpace/Manakin Repository

Show simple item record

dc.contributor.author Πιπίνης, Κωνσταντίνος el
dc.contributor.author Pipinis, Konstantinos en
dc.date.accessioned 2020-11-25T08:48:24Z
dc.date.available 2020-11-25T08:48:24Z
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/52055
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.19753
dc.rights Default License
dc.subject Transactional memory en
dc.subject Software transactional memory en
dc.subject Parallel programming en
dc.subject Synchronization schemes en
dc.subject StandawayTM en
dc.subject Παράλληλος προγραμματισμός el
dc.subject Συναλλακτική μνήμη el
dc.subject Σχήμα συγχρονισμού el
dc.subject Πολυνηματική επεξεργασία el
dc.subject Βελτιστοποίηση el
dc.title Σχεδιασμός και υλοποίηση συστήματος STM με γρήγορη πρόσβαση μεταδεδομένων el
dc.contributor.department CSLab el
heal.type bachelorThesis
heal.classification Computer Science el
heal.language el
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2020-07-20
heal.abstract Καθώς ο νόμος του Moore φτάνει στα όριά του και οδηγούμαστε σε πολυπύρηνα επεξεργαστικά συστήματα, ο νόμος του Amdahl φαίνεται να παίζει κυρίαρχο ρόλο στον χρόνο εκτέλεσης απαιτητικών εφαρμογών. Για την υλοποίηση παράλληλων προγραμμάτων έχουν σχεδιαστεί διάφορες τεχνικές συγχρονισμού όπως σημαφόροι, κλειδώματα, mutexes, φράγματα και ατομικές εντολές. Όμως όλα αυτά τα συστήματα προϋποθέτουν γνώση από τον προγραμματιστή των διαφόρων race conditions και data dependencies σε κάθε φάση εκτέλεσης του προγράμματος. Το Transactional Memory (TM) είναι μία μέθοδος συγχρονισμού που προτάθηκε για να απελευθερώσει τον προγραμματιστή από την δυσκολία υλοποίησης παράλληλων προγραμμάτων φροντίζοντας αυτόματα για τον συγχρονισμό του παράλληλου κώδικα. Για την χρήση ΤΜ ο προγραμματιστής ορίζει μία περιοχή (atomic block) ως transactional η οποία θα εκτελεστεί ατομικά σε σχέση με τις υπόλοιπες περιοχές που έχει ο ίδιος ορίσει ομοίως. Έχουν προταθεί δύο βασικές μορφές TM. ΤΜ υλοποιημένο σε Software (STM) και ΤΜ υλοποιημένο σε hardware (HTM), ενώ έχουν προταθεί TMs τα οποία είναι μερικώς υλοποιημένα σε software και μερικώς σε hardware (Hybrid Transactional Memory). Προτερήματα και ελαττώματα του κάθε συστήματος έχουν μελετηθεί εκτενώς από την βιβλιογραφία. Σε αυτήν την διπλωματική εργασία εστιάζουμε στα συστήματα STM που δεν απαιτούν υποστήριξη υλικού. Κάθε σύστημα STM παρακολουθεί τις προσβάσεις μνήμης των threads για να αποφανθεί αν υπάρχει ή όχι παραβίαση της ατομικότητας, αν δηλαδή κατά την εκτέλεση ενός atomic block (transaction) κάποιο άλλο thread έχει επηρεάσει τις θέσεις μνήμης που αυτό το block κάνει access. Το STM σύστημα συνήθως κρατάει μεταδεδομένα (metadata) για να βρίσκει τις παραβιάσεις ατομικότητας, όπως logs ή Bloom Filters με τις θέσεις μνήμης που κάθε thread έχει γράψει ή διαβάσει. Ωστόσο, κάθε access στην μνήμη μέσω STM είναι συνήθως πολύ πιο ακριβό από το αντίστοιχο access χωρίς STM, αφού τόσο η αναζήτηση στα logs όσο και τα Bloom Filters για την εύρεση παραβίασης της ατομικότητας είναι μία ακριβή διαδικασία. Στόχος της παρούσας διπλωματικής εργασίας είναι ο σχεδιασμός και η υλοποίηση ενός Software Transactional Memory (STM) συστήματος σε C ονόματι StandawayTMs. Με το StandawayTM προτείνουμε έναν νέο τρόπο αποθήκευσης αυτών των metadata που επιτρέπει την αναγνώριση παραβίασης ατομικότητας σε σταθερό χρόνο καθώς και πολύ μικρό overhead σε κάθε access την μνήμης μέσο STM. Μέρος των metadata είναι αποθηκευμένο σε σταθερή απόσταση στην μνήμη από τα δεδομένα στα οποία αναφέρονται. Σε αυτά αποθηκεύονται οι ταυτότητες των threads, και ελέγχονται τα accesses στην μνήμη με λογική ενός γραφέα ή πολλών αναγνωστών. Οι αλλαγές σε αυτά τα metadata γίνονται μέσα από ατομικές εντολές. Σε περίπτωση conflict, το transaction που επιθυμεί να γράψει ή να διαβάσει, οφείλει να αναγνωρίσει το εν λόγο conflict και να κάνει abort. Το StandawayTM παρότι αρκετά γρήγορο, δεν έχει σταθερή απόδοση και εξαρτάται από το εκάστοτε πρόγραμμα σε μεγαλύτερο βαθμό από άλλα STMs. Σε ευνοϊκά προγράμματα, παρατηρείται σημαντική βελτίωση αλλά η μη σταθερή συμπεριφορά του αφήνει χώρο για βελτιώσεις. Με μικρές αλλαγές στην λογική του, μπορούμε να εξασφαλίσουμε το forward guarantee. Επίσης το StandawayTM δεσμεύει πολύ μνήμη, όμως αυτό μπορεί να περιοριστεί με μεθόδους οι οποίες δεν έχουν ακόμα δοκιμαστεί και ελεγχθεί για την επιβάρυνση τους στην ταχύτητά. Στην παρούσα εργασία αρχικά παρέχουμε πληροφορίες σχετικά με το Transactional Memory και μετέπειτα αναλύουμε τον σχεδιασμό του StandawayTM καθώς και τους λόγους που οδήγησαν σε αυτές τις σχεδιαστικές επιλογές. Τέλος, παρουσιάζουμε και εξηγούμε αναλυτικά τα αποτελέσματα πειραματικών μετρήσεων και προτείνουμε επόμενα πιθανά βήματα πάνω στον σχεδιασμό του StandawayTMs. el
heal.advisorName Γκούμας, Γεώργιος el
heal.committeeMemberName Κοζύρης, Νεκτάριος el
heal.committeeMemberName Γκούμας, Γεώργιος el
heal.committeeMemberName Πνευματικάτος, Διονύσιος el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών el
heal.academicPublisherID ntua
heal.numberOfPages 63 σ. el
heal.fullTextAvailability false


Files in this item

This item appears in the following Collection(s)

Show simple item record