Please use this identifier to cite or link to this item:
|Title:||Σχεδίαση Και Υλοποίηση Ενός Εργαλείου Ανάλυσης Της Εκτέλεσης Ενός Προγράμματος Σε Πολυπύρηνες Αρχιτεκτονικές Για Τη Γλώσσα Erlang|
|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 executiontime 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 ofbeing 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.|
|Appears in Collections:||Διπλωματικές Εργασίες - Theses|
Items in Artemis are protected by copyright, with all rights reserved, unless otherwise indicated.