next up previous
Next: Εισαγωγή

ArrayTracer: Ανάλυση και Οπτικοποίηση της Επίδοσης Παράλληλων Εφαρμογών

Μεταπτυχιακή Εργασία
Ζάρρας Απόστολος
Επόπτης καθηγητής : Νικολάου Χρήστος

Περίληψη
Ο ArrayTracer είναι ένα εργαλείο ανάλυσης και οπτικοποίησης της επίδοσης μιας παράλληλης εφαρμογής. Η σχεδίαση και υλοποίησή του ξεκίνησε πριν από 4 χρόνια από τον Τίτο Σαρειδάκη [33]. Σταδιακά βελτιώθηκε και ολοκληρώθηκε. Οδηγήθηκε σε μια μορφή που ικανοποιεί τις σύγχρονες απαιτήσεις των χρηστών. Κυριότερες από αυτές είναι η ευκολία στη χρήση, η ελάχιστη επίδραση στη ροή ελέγχου της εφαρμογής, η ελαχιστοποίηση του χώρου αποθήκευσης των ιχνών, η γρήγορη επεξεργασία τους και η επαρκής απεικόνιση. Τα βασικά δομικά στοιχεία του εργαλείου είναι:

Τα δύο πρώτα ανήκουν στην πρώτη φάση της υλοποίησης και τα υπόλοιπα δύο είναι το αντικείμενο της παρούσας εργασίας.

Η διαδικασία ανάλυσης γίνεται μετά το τέλος της εκτέλεσης της εφαρμογής (Post Mortem). Προσπαθώντας να ελαττώσουμε την καθυστέρηση στον χρόνο εκτέλεσης, που οφείλεται στην εισαγωγή του κώδικα καθοδήγησης χρησιμοποιούμε ίχνη μειωμένου μεγέθους. Δεν γίνεται εξαγωγή χρονοσφραγίδας και για κάθε γεγονός κατανάλωσης χρόνου εξάγεται μόνο ένα ίχνος.

Η ανάλυση έχει ως στόχο την παραγωγή της ακολουθίας των γεγονότων για την κάθε διεργασία καθώς και των συγκερασμό τους σε μία ακολουθία. Η διαδικασία αυτή στηρίζεται σε εξαρτήσεις μεταξύ των γεγονότων και έχει ως αποτέλεσμα την παραγωγή λογικών χρονοσφραγίδων. Οι εξαρτήσεις προκύπτουν από τη σειριακότητα του κώδικα, την ενδοεπικοινωνία και τον συγχρονισμό μεταξύ των διεργασιών της εφαρμογής.

Η απεικόνιση της ακολουθίας αυτής γίνεται από μια επέκταση του Paragraph. Η διασύνδεση με το Paragraph έγινε με χρήση ενός φίλτρου που μετατρέπει τα ίχνη που παράγει ο ArrayTracer σε γεγονότα απεικόνισης μορφής PICL [13]. To Paragraph επεκτάθηκε με την προσθήκη νέων διαγραμμάτων, ώστε να καλύπτει τις δυνατότητες του ArrayTracer.

Abstract
ArrayTracer is a parallel performance analysis and visualization tool. The design and implementation began 4 years ago, by Titos Saridakis [33]. During these years it's been developed and enhanced according to the modern ideas in the field of performance analysis tools.

ArrayTracer's basic components are the following :

The first two parts belong to the first phase of the tools implementation. The last two are the subject of this thesis.

The analysis procedure takes place at Post-Mortem time. We tried to reduce the dilation introduced by ArrayTracer at the application's execution time, by producing reduced size trace records. These trace records do not contain timestamps. Besides that we reduced the number of trace records dumped. For each time consuming event we only produce one trace record instead of two.

During the trace analysis procedure we must produce each process's event sequence and merge them in a total event sequence. To do that we construct logical timestamps according to dependencies that hold for the application processes. These dependencies result from the serial code executed, the interprocess communication and synchronization.

To visualize the results we linked ArrayTracer with Paragraph. This was done with the implementation of a filter that transforms ArrayTracer's traces to PICL [13] trace format events. We extended Paragraph with new displays that cover ArrayTracer's extra trace capabilities (Variables References, Subroutine/Function Calls).

[ tex2html_wrap2211 ] [] tex2html_wrap2212




next up previous
Next: Εισαγωγή

zaras@ics.forth.gr