HEAL DSpace

Σχεδίαση και υλοποίηση ενός εργαλείου ανάλυσης της εκτέλεσης ενός προγράμματος σε πολυπύρηνες αρχιτεκτονικές για τη γλώσσα Erlang

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.advisor Σαγώνας, Κωστής el
dc.contributor.author Τιντινίδης, Αθανάσιος Α. el
dc.contributor.author Tintinidis, Athanasios A. en
dc.date.accessioned 2012-11-20T11:14:22Z
dc.date.available 2012-11-20T11:14:22Z
dc.date.copyright 2012-09-21 -
dc.date.issued 2012-11-20
dc.date.submitted 2012-09-21 -
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/6975
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.12199
dc.description 64 σ. el
dc.description.abstract Η μετάβαση σε πολυπύρηνες αρχιτεκτονικές παρουσιάζει διάφορες προκλήσεις - τα προγράμματα πρέπει να παραλλοποιηθούν αποδοτικά, αποφεύγοντας προβλήματα όπως αμοιβαίος αποκλεισμός και σημεία συμφόρησης. Ακόμα και σε γλώσσες προγραμματισμού όπως η Erlang, της οποίας το μοντέλο ταυτoχρονισμού και οι βάσεις της στο συναρτησιακό προγραμματισμό επιτρέπουν στο προγραμματιστή να αποφύφει τις περισσότερες μορφές αμοιβαίου αποκλεισμού και συνθηκών ανταγωνισμού και να δημιουργήσει ασφαλείς, επεκτάσιμες και αποδοτικές εφαρμογές, πολλές φορές είναι αναγκαίο να εξεταστεί η πορεία εκτέλεσης ώστε να εντοπιστούν σημεία συμφόρησης και άλλα προβλήματα που περιορίζουν την επιτάχυνση λόγω των πολλαπλών πυρήνων. Σε αυτή τη διπλωματική εργασία θα περιγράψουμε την αρχιτεκτονική, σχεδιαστικές αποφάσεις και λεπτομέρειες υλοποίησης ενός νέου εργαλείου profiling για την Erlang με το όνομα Schedplot. Το εργαλείο αυτό συλλέγει δεδομένα κατά τη διάρκεια εκτέλεσης ενός προγράμματος Erlang και στη συνέχεια παρουσιάζει το βαθμό αξιοποίησης ανά το χρόνο του κάθε scheduler (ο οποίος συνήθως αντιστοιχεί σε ένα νήμα ΚΜΕ που αντιστοιχεί σε ένα πυρήνα) και του συλλέκτη σκουπιδιών. Προσπαθήσαμε να σχεδιάσουμε την αναπαράσταση ώστε ο μεγάλος όγκος δεδομένων, που παράεται από την εκτέλεση προγραμμάτων Erlang με υψηλό βαθμό παραλληλοποίησης σε πολυπύρηνες αρχιτεκτονικές, να είναι εύκολα κατανοητός. Ένα από τα κυριότερα ζήτημα ήταν η δειγματοληψία του χρονοδιαγράμματος ώστε να προκύψει μια σμίκρυνση που να μην αλλοιώνει τη σημασιολογία. Επίσης, για τη γρήγορη αποθήκευση των δεδομένων χωρίς σημαντική επιβάρυνση του χρόνου εκτέλεσης σχεδιάστηκε μια δυαδική κωδικοποίηση. Τέλος, μελετήσαμε την επιβάρυνση εξαιτίας της χρήσης της erlang:trace/3 που έδειξε ότι περαιτέρω βελτίωση θα επιτύχει σημαντική βελτίωση της επεκτασιμότητας και μείωση της επιβάρυνσης. el
dc.description.abstract The shift towards multi-core architectures poses several challenges in software development as programs should be efficiently parallelized while avoiding related dangers such as deadlocks and bottlenecks. Even in languages such as Erlang, whose concurrency model and functional foundations enable the programmer to avoid most deadlocks and race conditions and build safe, scalable and efficient applications, it is often required to examine the execution in order to detect bottlenecks and other factors that limit the speedup. This thesis describes the architecture, design choices and implementation details of a new profiling tool for Erlang named Schedplot. Schedplot gathers data during the execution time and then, offline, visualizes the workload of each scheduler (which most of the time maps in a CPU-thread which maps in a core) and the garbage collector. We tried to optimize the graphical representation in order to aid the user’s comprehension of the large volume of data generated by highly scalable Erlang programs run in multicore architectures; one of the main problems encountered was sampling the timeline to provide a zoomed-out view without altering the semantics of the produced representation. Another challenge was storing the produced data sufficiently fast and minimize the overhead caused; according to the evaluation, by using a custom binary encoding, it was reduced to the point of being insignificant. Last, we examined the overhead caused by using erlang:trace/3 concluding that further improvements should be made to improve the scalability and reduce the overall overhead. en
dc.description.statementofresponsibility Αθανάσιος Α. Τιντινίδης el
dc.language.iso el en
dc.rights ETDRestricted-policy.xml en
dc.subject Πολυπύρηνες αρχιτεκτονικές el
dc.subject Παραλληλοποίηση el
dc.subject Ταυτοχρονισμός el
dc.subject Σημείο συμφόρησης el
dc.subject Οπτικοποίηση el
dc.subject Multicore architectures en
dc.subject Parallel en
dc.subject Concurrency en
dc.subject Erlang en
dc.subject Profiler en
dc.subject Scalability en
dc.subject Bottleneck en
dc.subject Visualization en
dc.title Σχεδίαση και υλοποίηση ενός εργαλείου ανάλυσης της εκτέλεσης ενός προγράμματος σε πολυπύρηνες αρχιτεκτονικές για τη γλώσσα Erlang el
dc.title.alternative Design and Implementation of a concurrency profiling and visualing tool for Erlang programs in multicore architectures en
dc.type bachelorThesis el (en)
dc.date.accepted 2012-09-19 -
dc.date.modified 2012-09-21 -
dc.contributor.advisorcommitteemember Παπασπύρου, Νικόλαος el
dc.contributor.advisorcommitteemember Κοζύρης, Νεκτάριος el
dc.contributor.committeemember Σαγώνας, Κωστής el
dc.contributor.committeemember Παπασπύρου, Νικόλαος el
dc.contributor.committeemember Κοζύρης, Νεκτάριος el
dc.contributor.department Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Τεχνολογίας Λογισμικού el
dc.date.recordmanipulation.recordcreated 2012-11-20 -
dc.date.recordmanipulation.recordmodified 2012-11-20 -


Αρχεία σε αυτό το τεκμήριο

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής