MemSpyer:A Performance Debugging Tool which simulates and visualizes memory hierarchy.

 
Το τεκμήριο παρέχεται από τον φορέα :
Πανεπιστήμιο Κρήτης
Αποθετήριο :
E-Locus Ιδρυματικό Καταθετήριο
δείτε την πρωτότυπη σελίδα τεκμηρίου
στον ιστότοπο του αποθετηρίου του φορέα για περισσότερες πληροφορίες και για να δείτε όλα τα ψηφιακά αρχεία του τεκμηρίου*
κοινοποιήστε το τεκμήριο




1999 (EL)
MemSpyer:Ένα εργαλείο για προσομοίωση της ιεραρχίας μνήμης και οπτικής απεικόνισης της απόδοσης της με παράλληλη δυνατότητα Debbuging μέσω πηγαίου κώδικα.
MemSpyer:A Performance Debugging Tool which simulates and visualizes memory hierarchy.

Μηλολιδάκης, Γεώργιος (EL)
Milolidakis, George (EN)

Στη μεταπτυχιακή αυτή εργασία κατασκευάστηκε ένα εργαλείο το οποίο παρουσιάζει δυναμικά την απόδοση του συστήματος μνήμης τη στιγμή που διάφορες εφαρμογές εκτελούνται πάνω από αυτό και παράλληλα την ίδια στιγμή είναι σε θέση να συσχετίζει το σημείο του εκτελούμενο προγράμματος με τον πηγαίο κώδικα. Τα υπάρχοντα performance debbuging εργαλεία όπως το gprof, παρέχουν λίγες πληροφορίες σχετικά με τη συμπεριφορά του σύστημα μνήμης όταν εκτελούνται διάφορες εφαρμογές. Με χρήση του gprof ή άλλων παρόμοιων εργαλείων είναι σε πολλλές περιπτώσεις δύσκολο να βρεθούν τα σημεία εκείνα της εκτέλεσης του προγράμματος στα οποία επιβαρύνουν ιδιαίτερα το σύστημα και στη συνέχεια να συσχετιστούν με τα σημεία του πηγαίου κώδικα στα οποία αντιστοιχούν. Ο MemSpyer παρουσιάζει την απόδοση της ιεραρχίας κρυφής μνήμης, αποτελούμενη από TLB εντολών, TLB δεδομένων, Κρυφή Μνήμη εντολών πρώτου επιπέδου, Κρυφή Μνήμη δεδομένων πρώτου επιπέδου, Κρυφή Μνήμη εντολών δεύτερου επιπέδου και Κρυφή Μνήμη Δεδομένων δεύτερου επιπέδου. Το εργαλείο παρουσιάζει την απόδοση, μετρούμενη σε ποσοστό των misses, για κάθε επίπεδο της ιεραρχίας μνήμης. Επίσης, είναι σημαντική η δυνατότητα του MemSpyer να εκτελεί περισσότερα από ένα configurations του συστήματος μνήμης. Δηλαδή, η ίδια ιεραρχία κρυφής μνήμης με διαφορετικές παραμέτρους σε κάθε περίπτωση μπορεί να εκτελείται παράλληλα αποδίδοντας τα ίδια αποτελέσματα τα οποία θα προέκυπταν εάν εκτελούνταν μεμονομένα κάθε φορά κάθε διαφορετικό configuration. Αυτή η δυνατότητα είναι ιδιαίτερα σημαντική καθώς δίνει τη δυνατότητα στο χρήστη του MemSpyer να έχει συγκριτικά αποτελέσματα σε μία έως και πέντε εκτελέσεις του προγράμματος του παράλληλα σε σύστηματα με διαφορετικές παραμέτρους το καθένα. Παράλληλα, σε ένα άλλο παράθυρο, εμφανίζεται ο πηγαίος κώδικας δείχνοντας τη γραμμή της οποίας οι εντολές εκτελούνται εκείνη τη στιγμή. Ο MemSpyer βασίζεται στο επίπεδο της προσομοίωσης σε έναν instruction-set προσομοιωτή, το shade, το οποίο έχει κατασκευαστεί από τη SUN. Όλα τα διαφορετικά συστήματα μνήμης τα οποία εκτελούνται παράλληλα, έχουν την ίδια αρχιτεκτονική και ο χρήστης σε κάθε περίπτωση μπορεί να επιλέξει παραμέτρους όπως το μέγεθος της κάθε κρυφής μνήμης. Επίσης, ο χρήστης είναι υπεύθυνος να καθορίσει τον αριθμό των διαφορετικών συστημάτων τα οποία θα εκτελεστούν παράλληλα καθώς και να προσδιορίσει τον πηγαίο κώδικα σε περίπτωση που αυτός είναι διαθέσιμος. Πλεονεκτήματα του MemSpyer: § Ο χρήστης μπορεί να δει βήμα προς βήμα την απόδοση του προγράμματος, να καταγράψει τα σημεία εκείνα στα οποία δημιουργούνται bottlnecks, καθώς οι εκτελούμενες εντολές συσχετίζονται δυναμικά σε χρόνο εκτέλεσης της εφαρμογής (at run time) με τη γραμμή του πηγαίου κώδικα στην οποία αντιστοιχούν. § Προσφέρεται ευλυγισία (flexibility) στο χρήστη λόγω της δυνατότητας ταυτόχρονης εκτέλεσης μιας εφαρμογής σε περισσότερα από ένα συστήματα μνήμης. § Μπορεί να χρησιμοποιηθεί για να βελτιώσει συνολικά την απόδοση μιας εφαρμογής, εξετάζοντας γραμμή προς γραμμή το φόρτο και ξαναγράφοντας όποιο κομμάτι πηγαίου κώδικα ώστε να μειωθεί ο φόρτος του συστήματος μνήμης. § Ο χρήστης μπορεί να έχει συγκεντρωτικά μια σειρά από στατιστικά στοιχεία όπως για παράδειγμα τον συνολικό αριθμό των εντολών που εκτελέστηκαν, τον αριθμό των store και load εντολών, την ποιο συχνά εκτελούμενη συνάρτηση, τον αριθμό των επιτυχημένων και αποτυχημένων διακλαδώσεων κ.λ.π. § Μπορεί να χρησιμοποιηθεί για να αποφασισθεί το μέγεθος της κρυφής μνήμης σε ένα σύστημα ανάλογα με τις εφαρμογές οι οποίες εκτελούνται σε αυτό. (EL)
In this project we developed a performance debugging tool that helps users identify memory performance bottlenecks in their programs. Current performance debugging tools (like prof/gprof) provide little information about the memory behavior of user applications. Using (g) prof users find it difficult to isolate memory bottlenecks and relate them back to sections of code that causes the bottleneck. We propose to develop a tool that animates the memory hierarchy performance of user programs and (at the same time) highlight the source code line where the program currently executes. In this way, users are able to monitor the memory performance of their program, spot performance bottlenecks and relate them back to the program segments that cause them. Our tool displays an entire memory hierarchy consisting of Instruction TLB, Data TLB, First Level Instruction Cache, First Level Data Cache and a Second Level Cache. The tool will animate the performance (measured in miss ratio) for each level of the memory hierarchy. The tool is even being able to display several instances of the same level of the memory hierarchy. For example, the tool displays the hit ratio for a 4Kbytes-large first-level cache and for an 8Kbytes-large first-level cache simultaneously. At the same time, another window displays the line of the source code where the program currently executes. Thus, once a user identifies a performance bottleneck, (s) he is able to pinpoint to the exact line of code that creates the problem. The tool is based on part on Shade, an instruction-set simulator and custom trace generator, which has been developed by SUN. All the memory system we simulate simultaneously use the above architecture but the user can choose the size of each cache and the size of each TLB. The user also selects the number of the different memory configurations (s)he wants to execute simultaneously. There is also a module which shows to the user the line of the source code (if it is available of course) which is executed, at run time. Advantages of MemSpyer: § The user can find out the memory performance of a program, isolate performance bottlenecks and pinpoint the exact line of source code that creates the bottlenecks. § It offers flexibility to the user because of the simultaneous execution of different memory systems. § It can be used to improve the efficiency of a program by examining line-to-line the overhead of the code, and rewriting parts of it for reducing this overhead. § The user can have a collection of several statistics such as the number of store, loads or branch instruction, the most frequently executed function, how many branches are taken/untaken e.t.c. § It can be used for deciding the sizes of the caches when someone has to build such a memory system. (EN)

text
Τύπος Εργασίας--Μεταπτυχιακές εργασίες ειδίκευσης

Πανεπιστήμιο Κρήτης (EL)
University of Crete (EN)

1999-03-01
1999-04-07


Σχολή/Τμήμα--Σχολή Θετικών και Τεχνολογικών Επιστημών--Τμήμα Επιστήμης Υπολογιστών--Μεταπτυχιακές εργασίες ειδίκευσης



*Η εύρυθμη και αδιάλειπτη λειτουργία των διαδικτυακών διευθύνσεων των συλλογών (ψηφιακό αρχείο, καρτέλα τεκμηρίου στο αποθετήριο) είναι αποκλειστική ευθύνη των αντίστοιχων Φορέων περιεχομένου.