Το σύστημα BALSA [7], σχ. ,
(Brown Algorithm Simulator and Animator)
σχεδιάστηκε για την οπτικοποίηση σειριακών αλγορίθμων.
Τα βασικά του χαρακτηριστικά είναι :
Βασική βελτίωση του απόγονου του BALSA I, BALSA II είναι η πιο εξελιγμένη διαδικασία αποθήκευσης του ιστορικού χρήσης του εργαλείου για τη μελέτη κάποιου αλγορίθμου.
Μια από τις βασικότερες διαφορές είναι ότι το σύστημα αυτό σχεδιάστηκε για μελέτη σειριακών εφαρμογών. Αντίθετα ο ArrayTracer σχεδιάστηκε με τέτοιο τρόπο ώστε να υπερκαλύπτει την περίπτωση δίνοντας τη δυνατότητα μελέτης παράλληλων εφαρμογών. Επιπλέον το σύστημα αυτό αναλύει την εφαρμογή σε πραγματικό χρόνο. Αντίθετα ο ArrayTracer χρησιμοποιεί αρχεία ιχνών. Ειδικότερα ο χρήστης του BALSA καθορίζει τα γεγονότα που τον ενδιαφέρουν και για την απεικόνιση πρέπει να γράψει κάποιο επιπλέον κώδικα, ασφαλώς αυτό δεν ισχύει στην περίπτωση του ArrayTracer. Η δυνατότητα αποθήκευσης διαφόρων σχηματισμών προσφέρεται και από τα δύο εργαλεία.
Συνολικά το BALSA θα μπορούσε να χαρακτηριστεί δευτερεύουσα επιλογή για τη μελέτη παράλληλων εφαρμογών.
Το σύστημα ZEUS [4], χρησιμοποιείται κυρίως για ανίχνευση λογικών λαθών (debugging).
Τα βασικά του χαρακτηριστικά είναι :
Και στην περίπτωση αυτού του εργαλείου μια βασική διαφορά είναι ότι μελετά τις εφαρμογές σε πραγματικό χρόνο και κυρίως αυτές είναι σειριακές. Επιπλέον παρέχει τη δυνατότητα τεχνητής δημιουργίας γεγονότων που έχουν καθοριστεί από τον χρήστη.
Ο ArrayTracer παρέχει κυρίως δυνατότητες μελέτης της απόδοσης μιας παράλληλης εφαρμογής. Παρόλα αυτά όμως υπάρχει δυνατότητα μελέτης του τρόπου εκτέλεσης της εφαρμογής (κλήσεις ρουτινών, προσπέλαση μεταβλητών) για τον έλεγχο της ορθότητας του προγράμματος. Συνεπώς βασικό πλεονέκτημα του ArrayTracer είναι ότι παρέχει πληροφορία για ανίχνευση λαθών, ίσως κάπως περιορισμένη, αλλά υπερτερεί στις πολλές άλλες δυνατότητες που δεν υποστηρίζονται από το ZEUS. Βασικό μειονέκτημα του ZEUS είναι η σχεδίαση του για σειριακό κώδικα.
Το σύστημα [25] αυτό χρησιμοποιείται για την οπτικοποίηση της δυναμικής συμπεριφοράς των αλγορίθμων και των δομών δεδομένων της εφαρμογής.
Τα βασικά του χαρακτηριστικά είναι :
Η φιλοσοφία του εργαλείου αυτού δεν ταιριάζει με αυτή του ArrayTracer μια που ο βασικός του σκοπός είναι η μελέτη της συμπεριφοράς αλγορίθμων και των δομών δεδομένων τους. Ο ArrayTracer παρέχει αυτή τη δυνατότητα σε περιορισμένο βαθμό μια που η παρούσα υλοποίηση χρησιμοποιείται για τη μελέτη εφαρμογών υλοποιημένων σε Fortran. Αρα προς το παρόν η δομές δεδομένων που μελετάμε είναι στην πολυπλοκότερη περίπτωση, πολυδιάστατοι πίνακες. Βέβαια μελέτη της απόδοσης της εφαρμογής με βάση το PASTIS είναι δύσκολο να γίνει. Παρόλα αυτά η ιδέα της χρήση ενός ανιχνευτή λογικών σφαλμάτων για την παροχή της πληροφορίας είναι πρωτοποριακή.
Το σύστημα [15] αυτό χρησιμοποιείται για την οπτικοποίηση της επίδοσης παράλληλων εφαρμογών.
Τα βασικά του χαρακτηριστικά είναι:
Το Paragraph σε συνδυασμό με τη παράλληλη βιβλιοθήκη
επικοινωνίας PICL, [13]
είναι ένα εργαλείο της κατηγορίας του ArrayTracer. Παρόλα αυτά ο
τρόπος που γίνεται η συλλογή των ιχνών με τη χρήση της βιβλιοθήκης
PICL είναι δαπανηρός τόσο σε χώρο, αλλά και σε χρόνο μια που
γίνονται περισσότερες προσπελάσεις στο δίσκο σε σχέση με τον
ArrayTracer.
Το Paragraph είναι το εργαλείο που θα επιλέξουμε για την
οπτικοποίηση των ιχνών που παράγει ο ArrayTracer διότι
είναι πλήρες από πλευράς απεικονίσεων που σχετίζονται με την
επικοινωνία των διεργασιών και την χρησιμοποίηση των
επεξεργαστών. Επιπλέον η οπτικοποίηση γίνεται μετά το τέλος της
εκτέλεσης της εφαρμογής.
Τέλος παρέχει τη δυνατότητα επέκτασης, γεγονός που
δίνει τη δυνατότητα προσθήκης απεικονίσεων που σχετίζονται με τον
τρόπο προσπέλασης της μνήμης και την κλήση υπορουτινών/συναρτήσεων.
Το TRACEVIEW [22] σχεδιάστηκε σαν ένα γενικής μορφής σύστημα οπτικοποίησης που στηρίζεται στην ανάλυση ιχνών.
Τα βασικά του χαρακτηριστικά είναι:
Το αρχείο αποτελείται από μια ASCII επικεφαλίδα, που περιγράφει τη δομή των ιχνών που αποθηκεύονται στο αρχείο, από το σύνολο των ιχνών σε δυαδική μορφή (binary). Το κάθε ίχνος αντιστοιχεί σε ένα γεγονός που αναπαρίσταται γραφικά και η πληροφορία που περιέχει καθορίζεται από το χρήστη.
Κάθε οθόνη απεικόνισης αντιστοιχεί σε ξεχωριστό παράθυρο. Επιπλέον κάθε κλάση γεγονότων μπορεί να επιλεγεί και να αναπαρασταθεί σε κάθε μια από τις οθόνες.
Το εργαλείο αυτό παρουσιάζει πολλές ομοιότητες με τον ArrayTracer, μελετά παράλληλες εφαρμογές, η μελέτη γίνεται με χρήση αρχείων ιχνών. Ο χρήστης καθορίζει τα γεγονότα που τον ενδιαφέρουν. Το ίδιο γίνεται και από τον ArrayTracer με τον καθορισμό των σημείων του κώδικα που θέλει να ιχνοληπτηθούν και με τον καθορισμό του επίπεδου ιχνοληψίας (επικοινωνίας, μεταβλητών, κώδικα). Ενα πλεονέκτημα του Traceview είναι η δυνατότητα καθορισμού των περιεχομένων των ιχνών. Αλλά για κάθε γεγονός πρέπει να παράγονται δύο ίχνη, ένα για την είσοδο και ένα για την έξοδο. Αυτό σημαίνει σπατάλη χώρου, πχ. στην περίπτωση γεγονότων προσπέλασης μεταβλητών. Ακόμη οι προσφερόμενες δυνατότητες απεικόνισης κρίνονται περιορισμένες καθώς δεν υπάρχουν διαγράμματα απεικόνισης του τρόπου επικοινωνίας (γράφοι, πίνακες κλπ). Παρόλα αυτά κάθε κλάση γεγονότων μπορεί να απεικονιστεί από κάθε μορφής διάγραμμα.
Γενικά είναι ένα αξιόλογο εργαλείο με αδυναμίες στην απεικόνιση.
Τα συστήματα MAP (Memory Access Pattern) και SHMAP (Shared Memory Access Pattern) σχεδιάστηκαν για τη μελέτη της απόδοσης της εφαρμογής σε σχέση με τη χρησιμοποίηση της μνήμης του υπολογιστικού συστήματος.
Τα βασικά χαρακτηριστικά τους είναι:
Το σύστημα αυτό απεικονίζει τον τρόπο προσπέλασης της ιεραρχίας μνήμης των επεξεργαστών ενός παράλληλου συστήματος. Η αδυναμία του δικού μας συστήματος οφείλεται στο γεγονός ότι παράγεται πληροφορία για τον τρόπο προσπέλασης των μεταβλητών και δεν υπάρχει γνώση για το επίπεδο της ιεραρχίας μνήμης στο οποίο γίνονται οι προσπελάσεις (καταχωρητές, κρυφή μνήμη, κύρια μνήμη κλπ). Βέβαια μια επέκταση του ArrayTracer θα μπορούσε να περιλαμβάνει ένα εξομοιωτή προσπέλασης στην ιεραρχία μνήμης. Ακόμη και στην περίπτωση αυτή όμως δεν θα είχαμε την ακριβή συμπεριφορά της εφαρμογής.
Το πλεονέκτημα του ArrayTracer είναι ότι παρέχει πληροφορία σχετικά με την επικοινωνία και τη ροή του κώδικα. Αυτά είναι εξίσου σημαντικά για μια παράλληλη εφαρμογή και αγνοούνται από το MAP. Συνεπώς το σύστημα υστερεί σε πληρότητα.
Το σύστημα αυτό [36], σχ. , αποτελείται
από ένα σύνολο εργαλείων για την
ανίχνευση λογικών σφαλμάτων, μελέτη της επίδοσης μιας παράλληλης
εφαρμογής, οπτικοποίηση της συμπεριφοράς της και
για την προσομοίωση παράλληλων συστημάτων επεξεργασίας.
Τα εργαλεία αυτά είναι :
Το σύστημα αυτό αποτελείται από διαφορετικά εργαλεία και θεωρείται ιδιαίτερα πλήρες. Παρέχει ξεχωριστό εργαλείο ανίχνευσης σφαλμάτων και προσομοίωσης συστημάτων. Επιπλέον παρέχει πληροφορία που σχετίζεται με το υλικό και το λογισμικό. Ο ArrayTracer δεν έχει τη δυνατότητα αυτή αφού η εφαρμογή ιχνοληπτείται σε επίπεδο πηγαίου κώδικα. Η αδυναμία του συστήματος αυτού είναι ο φτωχός τρόπος απεικόνισης. Αυτή γίνεται μόνο με ιστογράμματα και διαγράμματα λωρίδων. Αρα πληροφορία που έχει σχέση με τον τρόπο επικοινωνίας δεν είναι δυνατόν να απεικονιστεί. Στο σημείο αυτό υπερτερεί ο ArrayTracer. Μια ακόμη βασική διαφορά είναι ότι η εφαρμογή μελετάται σε πραγματικό χρόνο.
Τα περισσότερα συστήματα οπτικοποίησης περιορίζονται στην
απεικόνιση εφαρμογών με μικρό βαθμό παραλληλισμού .
Οσο αυξάνει ο βαθμός παραλληλισμού
τόσο πιο δύσκολη είναι η κατασκευή των
απεικονίσεων και η μελέτη τους από το χρήστη.
Το SMILI [18] χρησιμοποιεί κινούμενα σχέδια (cartoon faces), γνωστά και ως Chernoff Faces [11], για την απεικόνιση ενός πεδίου δεδομένων διάστασης p. Συνεπώς το πεδίο των δεδομένων αντιστοιχεί σε ένα σύνολο από Chernoff Faces και οι εκφράσεις των προσώπων καθορίζουν την κατάσταση του όλου συστήματος. Τα χαρακτηριστικά του προσώπου αντιστοιχούν σε παραμέτρους μέτρησης πχ. το μήκος της μύτης αντιστοιχεί στο μήκος μιας ουράς εξυπηρέτησης ενός επεξεργαστή.
Ο τρόπος απεικόνισης παρόλο που είναι ευρηματικός δεν κρίθηκε επαρκής και λεπτομερής καθώς σε εφαρμογές με μικρότερο βαθμό παραλληλισμού απαιτείται μεγαλύτερη λεπτομέρεια στην απεικόνιση.
Το σύστημα αυτό [30, 29] χρησιμοποιείται για την μελέτη της απόδοσης παράλληλων εφαρμογών και θεωρείται ίσως το πιο πλήρες εργαλείο μελέτης. Το Pablo αποτελείται από τα εξής επιμέρους τμήματα.
Το τμήμα αυτό του εργαλείου, σχ.
περιλαμβάνει τα εξής τμήματα
Ο ArrayTracer δεν παρέχει ακόμη τη δυνατότητα μελέτης εφαρμογών σε C, λόγω της απουσίας του αντίστοιχου προεπεξεργαστή. Ακόμη μια αδυναμία του συστήματός μας είναι ότι ο τρόπος καθορισμού των σημείων εισαγωγής του κώδικα καθοδήγησης εξαρτάται από τον κώδικα της εφαρμογής. Αρα αν αυτός αλλάξει πρέπει να επαναληφθεί η διαδικασία. Κατι τέτοιο αποφεύγεται στο Pablo με τη βοήθεια του συστήματος διεπαφής.
Στο κομμάτι αυτό του εργαλείου, σχ. , ο χρήστης
καθορίζει μια ακολουθία ανάλυσης και απεικόνισης των δεδομένων. Δηλαδή
δημιουργεί ένα κατευθυνόμενο γράφο ανάλυσης και απεικόνισης. Οι κόμβοι
του γράφου μπορεί να είναι τριών ειδών:
Οι κόμβοι επεξεργασίας, με βάση την πληροφορία που καθορίζει τη μορφή των ιχνών τα επεξεργάζεται και παράγει πληροφορία χρήσιμη για την απεικόνιση από τους κόμβους αναπαράστασης. Στον ArrayTracer ανάλυση και απεικόνιση έχει προκαθορισμένη μορφή. Ο χρήστης έχει τη δυνατότητα να επιλέξει τον τρόπο της απεικόνισης μεταξύ ενός προκαθορισμένου συνόλου απεικονίσεων. Παρόλα αυτά η απλότητα της διαδικασίας αυτής είναι ιδιαίτερα ελκυστική και υποστηρίζεται από την μεγάλη ποικιλία των δεδομένων απεικονίσεων.
Με τη χρήση μιας γραμματικής ο χρήστης μπορεί να καθορίσει τη μορφή που θα έχουν τα ίχνη που θα παράγονται. Δηλαδή εν τέλει την πληροφορία που θα περιέχουν. Αυτή η δυνατότητα δεν παρέχεται από τον ArrayTracer διότι ένας από τους στόχους του είναι να κρατηθεί η καθυστέρηση της εφαρμογής σε προβλεπόμενα, χαμηλά επίπεδα.
Ασφαλώς αποτελεί μια πολύ πρωτότυπη ιδέα που δεν παρέχεται σαν δυνατότητα από τον ArrayTracer.
Σε γενικές γραμμές ο ArrayTracer υστερεί σε δυνατότητες και ευελιξία αλλά είναι εξαιρετικά απλός στη χρήση και εύκολος στην εκμάθηση.
Το Paradyn [24] είναι και αυτό ένα εργαλείο ανάλυσης της απόδοσης παραλλήλων εφαρμογών. Βασικός τους στόχος είναι με τη χρήση διαφόρων σχημάτων να μετατρέπουν τη ροή των δεδομένων, που παράγονται από την εφαρμογή, σε γραφικά στοιχεία της μορφής (X, Y, size, color). Ο κώδικας καθοδήγησης τοποθετείται και αφαιρείται κατά τη διάρκεια της εκτέλεσης της εφαρμογής. Ενα τμήμα του εργαλείου χρησιμοποιείται για την αναζήτηση πιθανόν προβλημάτων στην απόδοση που καθορίζονται από το χρήστη.
Σε γενικές γραμμές το εργαλείο αυτό είναι παρόμοιο με τον ArrayTracer με βασική διαφορά την run-time καθοδήγηση της εφαρμογής που μπορεί να είναι πλεονέκτημα ή μειονέκτημα του εργαλείου ανάλογα με την αύξηση που εισάγει στο χρόνο εκτέλεσης. Επιπλέον η μελέτη της εφαρμογής γίνεται σε πραγματικό χρόνο για την αποφυγή της αποθήκευσης μεγάλων ποσοτήτων πληροφορίας. Επιπλέον το τμήμα αυτόματης ανίχνευσης προβλημάτων απόδοσης θεωρείται καινοτομία και αξιόλογη ιδέα. Μειονέκτημα του συστήματος θεωρείται ότι ο χρήστης πρέπει να γράψει κώδικα για την απεικόνιση των δεδομένων που παράγονται και επιπλέον οι τρόποι απεικόνισης είναι περιορισμένοι (ιστογράμματα, πλέγματα ιστογραμμάτων). Επιπλέον κώδικας πρέπει να προστεθεί και στην εφαρμογή. Ασφαλώς ο χρόνος εκτέλεσης επιβαρύνεται με την προσθήκη κώδικα ανάλυσης και απεικόνισης δεδομένων.
Στον πίνακα περιγράφονται συνοπτικά
τα κύρια χαρακτηριστικά των υπάρχοντων εργαλείων ανάλυσης και
οπτικοποίησης.
Ο χαρακτηρισμός των εργαλείων γίνεται ως προς :
(Purpose : System was designed for Parallel Machines).
(Target : Algorithm Animation,Program Behavior, Performance, Debugging).
(Time : Real Time, Post Mortem).
(Kind : Algorithm, Topology, Mapping, Program Data or Code or Behavior, Performance).
Table: Πίνακας Περιγραφής των χαρακτηριστικών των βασικότερων
συστημάτων οπτικοποίησης.