Το Paragraph παρέχει τη δυνατότητα στο χρήστη να χρησιμοποιήσει τρία διαφορετικά σύνολα απεικονίσεων για την μελέτη της απόδοσης μιας παράλληλης εφαρμογής, το καθένα από αυτά παρουσιάζει μια διαφορετική άποψη αυτής.
Με τη χρήση απεικονίσεων αυτής της κατηγορίας επιτυγχάνεται η μελέτη του πόσο αποτελεσματικά χρησιμοποιείται το σύνολο των επεξεργαστών στο οποίο εκτελούνται οι διεργασίες της παράλληλης εφαρμογής και η μελέτη της κατανομής του φορτίου στους επεξεργαστές. Σε όλα τα διαγράμματα της κατηγορίας αυτής χρησιμοποιείται ο παρακάτω κώδικας χρωμάτων που περιγράφει την κατάσταση που βρίσκεται ο κάθε επεξεργαστής. Ο κώδικας αυτός είναι μια μεταφορά του κώδικα των φαναριών ρύθμισης της οδικής κυκλοφορίας Traffic Light Metaphore:
Αν ο επεξεργαστής είναι σε αυτή την κατάσταση, τότε η εκτέλεση της διεργασίας έχει αναβληθεί, λόγω της αναμονής κάποιου μηνύματος, ή λόγω του φυσικού τέλους της εκτέλεσης της διεργασίας.
Οταν ο επεξεργαστής βρίσκεται σε αυτή την κατάσταση, τότε η εκτέλεση της διεργασίας έχει αναβληθεί, λόγω της αναμονής σε κάποιο σημείο συγχρονισμού (Barrier).
Τέλος όταν ο επεξεργαστής είναι σε αυτή κατάσταση τότε εκτελείται ένα τμήμα της διεργασίας που δεν έχει σχέση με επικοινωνία.
Το εργαλείο παρέχει τις παρακάτω διαφορετικές οθόνες απεικόνισης αυτής της κατηγορίας.
Το διάγραμμα αυτό (σx. ) παρουσιάζει τον αριθμό των
επεξεργαστών που βρίσκονται σε κάθε μια από τις τρεις
καταστάσεις που αναφέραμε, σε μια δεδομένη χρονική στιγμή.
Ο οριζόντιος άξονας είναι ο άξονας του χρόνου και στον κάθετο
απεικονίζονται οι επεξεργαστές.
Δηλαδή αν, Ν ο αριθμός των επεξεργαστών του συστήματος, και τη χρονική στιγμή t, a επεξεργαστές βρίσκονται στην κατάσταση Busy,b επεξεργαστές βρίσκονται στην κατάσταση Idle και c επεξεργαστές βρίσκονται στην κατάσταση Overhead, με a+b+c = N, τότε το ευθύγραμμο τμήμα που ορίζεται από τα σημεία (t, 0), (t, a) Θα απεικονίζεται με τρόπο που αντιστοιχεί στην κατάσταση Busy, το ευθύγραμμο τμήμα που ορίζεται από τα σημεία (t, a), (t, b) Θα απεικονίζεται με τρόπο που αντιστοιχεί στην κατάσταση Idle και το ευθύγραμμο τμήμα που ορίζεται από τα σημεία (t, b), (t, c) Θα απεικονίζεται με τρόπο που αντιστοιχεί στην κατάσταση Overhead. Ο τρόπος αντιστοιχίας, όπως είπαμε εξαρτάται από το χρώμα της γραμμής, καθώς και την ποιότητα της (Fill Style).
Η πληροφορία που απεικονίζεται σε αυτό το διάγραμμα
(σχ. ) είναι η
κατάσταση του κάθε επεξεργαστή σε συνάρτηση με το χρόνο.
Για τους άξονες ισχύει ότι και πιο πάνω.
Δηλαδή αν ο επεξεργαστής i βρίσκεται στην κατάσταση Busy, τη χρονική στιγμή t, τότε το ευθύγραμμο τμήμα που ορίζεται από τα σημεία (t, i-1), (t, i) Θα απεικονίζεται με τρόπο που αντιστοιχεί στην κατάσταση Busy. Αντίστοιχα ισχύουν για τις υπόλοιπες δύο καταστάσεις.
Δηλαδή αν ο επεξεργαστής i ήταν σε κατάσταση Busy για
του χρόνου εκτέλεσης, σε κατάσταση Idle για
του χρόνου εκτέλεσης και σε κατάσταση Overhead
για
του χρόνου εκτέλεσης, τότε το
της λωρίδας που
αντιστοιχεί σε αυτόν, θα απεικονίζεται με τον τρόπο που αντιστοιχεί
στην κατάσταση Busy, το
της λωρίδας που
αντιστοιχεί σε αυτόν, θα απεικονίζεται με τον τρόπο που αντιστοιχεί
στην κατάσταση Idle και το
της λωρίδας που
αντιστοιχεί σε αυτόν, θα απεικονίζεται με τον τρόπο που αντιστοιχεί
στην κατάσταση Overhead
Δηλαδή αν το του μέτρου απεικονίζεται με τον τρόπο που
αντιστοιχεί
στην κατάσταση Busy, τότε τη δεδομένη χρονική στιγμή (a
* N)/100 επεξεργαστές βρίσκονται στην κατάσταση
Busy. Αντίστοιχα ισχύουν αν
,
του μέτρου
απεικονίζονται με τους τρόπους που αντιστοιχούν στις
καταστάσεις Idle και Overhead αντίστοιχα.
Δηλαδή, αν N ο αριθμός των επεξεργαστών, το μέγεθος της λωρίδας που ορίζεται από το διάστημα (i-1, i), i ;SPMlt;= N, περιγράφει το ποσοστό του χρόνου εκτέλεσης της εφαρμογής, που i επεξεργαστές ήταν ταυτόχρονα στην κατάσταση που αναγράφεται στην κάτω δεξιά γωνία του διαγράμματος.
Το σύνολο των απεικονίσεων αυτών χρησιμοποιείται για τη μελέτη του τρόπου επικοινωνίας, της έντασης επικοινωνίας, καθώς και της συμπεριφοράς της εφαρμογής, κατά την εκτέλεση της σε διάφορες τοπολογίες δικτύων. Μια συνοπτική περιγραφή των διαγραμμάτων της κατηγορίας αυτής ακολουθεί.
Στο διάγραμμα τόπου-χρόνου (Space Time) (σχήμα
)
παρουσιάζεται η διαδικασία ανταλλαγής μηνυμάτων μεταξύ των
διεργασιών που εκτελούνται στον κάθε επεξεργαστή.
Κάθε οριζόντια γραμμή αντιστοιχεί σε έναν από τους
επεξεργαστές του συστήματος.
Οι ανταλλαγές συμβολίζονται με γραμμές από τον αποστολέα στον
παραλήπτη. Το χρώμα της γραμμής μπορεί αντιστοιχιστεί σε ένα
από τα επόμενα :
Στο διάγραμμα (σχ. ) αυτό απεικονίζονται γραφικά
τα μεγέθη των
ουρών αποθήκευσης μηνυμάτων των επεξεργαστών στους οποίους
εκτελούνται οι διεργασίες της υπο μελέτη εφαρμογής.
Δηλαδή στον οριζόντιο άξονα απεικονίζονται οι επεξεργαστές και στον κάθετο τα μεγέθη των λωρίδων που αντιστοιχούν σε αυτούς. Το μέγεθος της κάθε λωρίδας αντιστοιχεί στο μέγεθος της ουράς του επεξεργαστή. Το μέγεθος της κάθε ουράς εκφράζεται είτε σε αριθμό μηνυμάτων, είτε σε συνολικό μέγεθος μηνυμάτων (bytes). Αποθηκευμένα μηνύματα θεωρούνται αυτά που έχουν σταλεί και δεν έχουν ακόμη παραληφθεί. Για την κάθε ουρά απεικονίζονται, το μέγιστο μέγεθος (με το ανοιχτό χρώμα) της και το τρέχον μέγεθος (με το σκούρο χρώμα).
Στο διάγραμμα αυτό (σχ. ) αναπαρίστανται οι ανταλλαγές
μηνυμάτων σε ένα διδιάστατο πίνακα.
Στις γραμμές και στις στήλες παριστάνονται ο αποστολέας και ο
παραλήπτης αντίστοιχα.
Ενα στοιχείο του πίνακα i, j χρωματίζεται όταν ο i
κόμβος στείλει ένα μήνυμα στον j και αποχρωματίζεται όταν ο j
παραλάβει το μήνυμα.
Το χρώμα και η ποιότητα (Fill Style)
χρωματισμού του στοιχείου, όπως και στο διάγραμμα
τόπου-χρόνου μπορεί αντιστοιχιστεί σε ένα
από τα επόμενα :
Παρέχει την ίδια πληροφορία με το Communication Traffic διάγραμμα σε μία διάσταση.
Κάθε κόμβος αντιστοιχεί σε ένα επεξεργαστή όπου εκτελούνται οι διεργασίες της εφαρμογής. Οι γραμμές αναπαριστούν ανταλλαγές μηνυμάτων, εμφανίζονται όταν σταλεί κάποιο μήνυμα και εξαφανίζονται όταν γίνει παραλαβή του μηνύματος. Τα χρώματα και η ποιότητα χρωματισμού των κόμβων αντιστοιχούν την κατάσταση στην οποία βρίσκεται ο αντίστοιχος επεξεργαστής. Ο τρόπος αντιστοίχισης αναπαρίσταται στη βάση του διαγράμματος. Επιπλέον εκεί αναγράφεται και το είδος της τοπολογίας που επιλέχθηκε. Αναλυτικά οι καταστάσεις που απεικονίζονται είναι :
Το διάγραμμα αυτό (σχ. ) είναι παρόμοιο με το
προηγούμενο
με τη διαφορά ότι παρέχει τη δυνατότητα στο χρήστη να
καθορίσει την τοπολογία
του δικτύου των επεξεργαστών μέσα από ένα σύνολο
από τοπολογίες με βάση τον υπερκύβο (Hypercube).
Ετσι είναι δυνατή η
μελέτη της συμπεριφοράς της εφαρμογής στη δεδομένη τοπολογία
λογικού δικτύου.
Στο διάγραμμα αυτό (σχ. ) αναπαρίσταται η
ενδοδιεργασιακή επικοινωνία, κατά την εκτέλεση της εφαρμογής
σε διάφορες τοπολογίες φυσικών δικτύων. Αντίθετα με
τα προηγούμενα διαγράμματα, εδώ εμφανίζεται το πλήρες μονοπάτι
επικοινωνίας το οποίο μπορεί να περιλαμβάνει δρομολόγηση
των μηνυμάτων διαμέσω ενδιάμεσων κόμβων. Ο τρόπος δρομολόγησης
εξαρτάται από την τοπολογίας που επιλέχθηκε. Το χρώμα του
κάθε συνδέσμου αντιστοιχεί στον αριθμό μηνυμάτων που
στάλθηκαν μέσω αυτού του συνδέσμου. Η αντιστοιχία
απεικονίζεται στη βάση του διαγράμματος, καθώς και το είδος
της τοπολογίας που επιλέχθηκε.
Στο διάγραμμα αυτό διάφορα γενικά στατιστικά που έχουν σχέση με την επικοινωνία πχ. μέγεθος μηνυμάτων, αριθμός μηνυμάτων, χρόνος επικοινωνίας κλπ.
Το διάγραμμα αυτό (σχ. ) δίνει τη
δυνατότητα στο χρήστη να επιλέξει το
στατιστικού που αντιστοιχεί στην κλίμακα χρωμάτων/ποιοτήτων
των διαγραμμάτων
Space-Time, Communication Matrix. Επιπλέον στο διάγραμμα
φαίνεται η αντιστοιχία ποσότητας και χρώματος
Οι υπολογιστικές εργασίες (Tasks) ορίζονται στο Paragraph ως εργασίες των οποίων η αρχή και το πέρας καθορίζονται από το χρήστη με την κλήση ορισμένων ρουτινών της βιβλιοθήκης PICL. Το κάθε Task χαρακτηρίζεται από ένα μοναδικό αριθμό που καθορίζεται από το χρήστη. Οι απεικονίσεις που αφορούν τις υπολογιστικές εργασίες δε χρησιμοποιούνται από τον ArrayTracer για αυτό θα γίνει σε αυτές μόνο μια σύντομη αναφορά.
Απεικονίζεται ο αριθμός των επεξεργαστών που εκτελούν ένα συγκεκριμένο Task.
Στο διάγραμμα αυτό περιγράφεται γραφικά ποιο Task εκτελεί καθένας από τους επεξεργαστές και για ποιό χρονικό διάστημα.
Σε ένα πίνακα δύο διαστάσεων αναπαρίσταται η αρχή και το πέρας του κάθε Task. Κάθε στοιχείο του πίνακα αντιστοιχεί σε ένα Task.
Εκφράζεται το ποσοστό της διάρκειας του κάθε Task, στο συνολικό χρόνο εκτέλεσης.
Οι απεικονίσεις προστέθηκαν στο Paragraph με βάση τη δυνατότητα που παρέχεται στους χρήστες προσθέσουν δικά τους διαγράμματα απεικόνισης (Παράρτημα Β). Ο τρόπος που γίνεται αυτό είναι με την κατασκευή μιας βιβλιοθήκης ρουτινών που καλούνται από το Paragraph.
Αναλυτικά θα περιγραφούν παρακάτω τα διαγράμματα αυτά που προστέθηκαν.
Figure: Variables Streak Διάγραμμα
Στο διάγραμμα αυτό (σχ. ), απεικονίζεται ο
αριθμός προσπελάσεων σε μεταβλητές της εφαρμογής που γίνονται
στον κάθε επεξεργαστή. Οι προσπελάσεις αυτές μπορεί να είναι
προπελάσεις στην κύρια μνήμη είτε προσπελάσεις στην κρυφή
μνήμη είτε προσπελάσεις σε καταχωρητές. Για το λόγο αυτό δεν
είναι γνωστό πόσο κοστίζουν χρονικά άλλα κατά προσέγγιση
κοστίζουν απο 0 έως μερικές εκατοντάδες nsec.
Στον οριζόντιο άξονα απεικονίζονται οι επεξεργαστές και στον κάθετο ο αριθμός των προσπελάσεων. Στον κάθε επεξεργαστή αντιστοιχούν δύο λωρίδες. Η πάνω απεικονίζει τις προσπελάσεις ανάγνωσης και η κάτω τις προσπελάσεις εγγραφής.
Figure: Variables Matrix Διάγραμμα
Στο διάγραμμα αυτό (σχ. ), παρουσιάζεται μια
διαφορετική απεικόνιση των προσπελάσεων μεταβλητών, που
γίνονται από τον κάθε επεξεργαστή. Κάθε στοιχείο του πίνακα
αντιστοιχεί στον επεξεργαστή που αναγράφεται στο κέντρο του
στοιχείου. Οι μεταβολές στους χρωματισμούς και στο είδος
του χρωματισμού fill style αντιστοιχούν στον αριθμό
προσπελάσεων που έγιναν. Αυτή η αναπαράσταση
στηρίζεται στον κώδικα χρωμάτων που εμφανίζεται στην βάση του
διαγράμματος. Οι αποχρώσεις αντιστοιχούν σε αριθμό των προσπελάσεων
των μεταβλητών, κατά αύξουσα σειρά, από αριστερά προς τα δεξιά.
Δηλαδή αν το στοιχείο που αντιστοιχεί στον επεξεργαστή i
χρωματίζεται με την πρώτη από δεξιά απόχρωση τότε αυτός έκανε
τις περισσότερες προσπελάσεις μεταβλητών.
Το διάγραμμα (σχ. ) αποτελείται από ένα πίνακα με n*m
στοιχεία. Οι γραμμές του πίνακα αντιστοιχούν στις διεργασίες
της εφαρμογής και οι στήλες αντιστοιχούν στις ομάδες που
δημιουργήθηκαν.
Ενα γεγονός ένταξης (Group Join) της
διεργασίας i στην ομάδα j
ισοδυναμεί με χρωματισμό του στοιχείου i, j του πίνακα με
κίτρινο χρώμα.
Ενα γεγονός αποχώρησης της διεργασίας i από την ομάδα j
ισοδυναμεί με χρωματισμό του στοιχείου i, j του πίνακα με
πράσινο χρώμα.
Η άφιξη της διεργασίας i σε σημείο συγχρονισμού ισοδυναμεί με χρωματισμού του στοιχείου i, j, όπου j η ομάδα, με χρώμα κόκκινο. Οταν όλες οι διεργασίες της ομάδας φτάσουν στο σημείο συγχρονισμού τότε αποχρωματίζονται και επιστρέφουν στον κίτρινο χρωματισμό που φανερώνει ότι είναι ενταγμένες στην αντίστοιχη ομάδα.
Στο διάγραμμα αυτό (σχ. ) παρουσιάζεται ένα τριπλό
ιστόγραμμα. Στον οριζόντιο άξονα αναπαρίστανται οι
επεξεργαστές του συστήματος και στον κάθετο άξονα ο χρόνος.
Στο πρώτο ιστόγραμμα απεικονίζεται ο χρόνος που
δαπανάται για υπολογισμούς (Computation Time), στο
δεύτερο αυτός που δαπανάται για επικοινωνία
(Communication Time), στο τρίτο αυτός που δαπανάται για
συγχρονισμό (Synchronization Time).
Ο χρωματισμός των ιστογραμμάτων αντιστοιχεί στις
καταστάσεις Busy, Idle, Overhead
.
Figure: Loop Iterations Διάγραμμα
Στο διάγραμμα αυτό απεικονίζονται ο αριθμός των πετυχημένων και αποτυχημένων επαναλήψεων των βρόγχων που εκτελούνται σε κάθε επεξεργαστή του συστήματος. Στον οριζόντιο άξονα απεικονίζονται οι επεξεργαστές και στον κάθετο ο αριθμός των επαναλήψεων. Σε κάθε επεξεργαστή αντιστοιχούν δύο λωρίδες. Η πάνω απεικονίζει τις επιτυχής επαναλήψεις, που μπορεί να αντιστοιχούν σε επαναλήψεις του αλγορίθμου που μελετάται. Η κάτω απεικονίζει τις ενεπιτυχείς επαναλήψεις.
Επιτυχής επανάληψη χαρακτηρίζεται αυτή κατά την οποία η συνθήκη του βρόχου είναι αληθής. Στην αντίθετη περίπτωση η επανάληψη χαρακτηρίζεται ανεπιτυχής αφού ο βρόχος οδηγείται στο πέρας της εκτέλεσης του.
Figure: Generation Map Διάγραμμα
Η απεικόνιση του γενεαλογικού δέντρου μιας εφαρμογής
πολλές φορές είναι απαραίτητο για τη αναπαράσταση ενός
αλγορίθμου και για ανίχνευση λογικών σφαλμάτων.
Στον διδιάστατο πίνακα αυτής της αναπαράστασης (σχ. ), οι
γραμμές ατιστοιχούν στις διεργασίες γονείς και οι στήλες στις
διεργασίες παιδιά.
Ετσι αν το στοιχείο i, j είναι αναμμένο
(χρωματισμένο) τότε η διεργασία j είναι παιδί της διεργασίας i.
Figure: Event Frequency Διάγραμμα
Το διάγραμμα αυτό (σχ. ) μπορεί να
περιγραφεί ως μια συνολική
αναπαράσταση των γεγονότων που συνέβησαν κατά την εκτέλεση της
εφαρμογής. Ετσι παρουσιάζονται αναλυτικά για την κάθε
διεργασία όλα τα γεγονότα με μια κάθετη γραμμή, το χρώμα της
οποίας καθορίζει το είδος του γεγονότος και το πάχος τη
διάρκεια του γεγονότος.
Η αντιστοιχία συμβάντων-χρωμάτων φαίνεται στον πίνακα
Στο διάγραμμα (σχ. ) αυτό απεικονίζεται ο χρόνος που
δαπανάται από την κάθε διεργασία για προσπελάσεις στον δίσκο.
Στον κάθετο άξονα απεικονίζονται οι επεξεργαστές και
στον οριζόντιο ο χρόνος που δαπανάται στην προσπέλαση στο
δίσκο. Σε κάθε επεξεργαστή αντιστοιχεί μια οριζόντια λωρίδα,
το μέγεθος της οποίας καθορίζει την τιμή του χρόνου.