Next                  Up                    Back                   Contents           

Επόμενο:1.9 Παραλληλισμός στον ανθρώπινο υπολογιστή Πάνω:Κεφάλαιο 1ο: Γιατί Παράλληλος Προγραμματισμός;  Πίσω:1.7 Παράλληλοι Αλγόριθμοι


 

1.8 Ο Σφαλματοθήρας και ο Ελεγκτής απόδοσης της Multi-Pascal

 

 

Για να γραφτούν πρακτικά παράλληλα προγράμματα που να τρέχουν αποδοτικά και να επιτυγχάνουν καλή επιτάχυνση στα παράλληλα συστήματα, είναι απαραίτητη η πλήρης κατανόηση των βασικών αιτιών μείωσης της απόδοσης, για τις οποίες μια μικρή λίστα δόθηκε στην προηγούμενη ενότητα. Αυτή η κατανόηση θα αναπτυχθεί σταδιακά μέσα από τη μεγάλη ποικιλία προγραμματιστικών εργασιών του κειμένου, οι οποίες σχεδιάστηκαν για να δοκιμαστούν και να εκτελεστούν μέσω της Multi-Pascal. Όταν γράφεται ένα παράλληλο πρόγραμμα, δεν είναι δυνατόν να προβλεφθεί εξαρχής που μπορούν να παρουσιαστούν προβλήματα απόδοσης στο πρόγραμμα. Όταν οι προγραμματιστές αποκτούν εμπειρία στη δημιουργία κοινών σειριακών προγραμμάτων, αναπτύσσουν και την ικανότητα να απομονώνουν και να απομακρύνουν τα λάθη μέσα από το πρόγραμμα τους μ’ ένα συστηματικό τρόπο. Παρόμοια, οι προγραμματιστές παράλληλων συστημάτων πρέπει να αναπτύξουν την πρακτική δεξιότητα να απομακρύνουν από τα προγράμματα τους, τις αιτίες μείωσης της απόδοσης που μπορεί να μειώσουν τον παραλληλισμό που επιτυγχάνεται από το πρόγραμμα.

Προκειμένου ο φοιτητής να μάθει να εξαλείφει τις δυσχέρειες απόδοσης, ο προσομοιωτής της Multi-Pascal έχει να διαλογικό ελεγκτή απόδοσης που παρέχει μια σειρά από εργαλεία που απομονώνουν τμήματα κατά τη διάρκεια εκτέλεσης του προγράμματος στα οποία παρουσιάζονται σημεία συμφόρησης (bottlenecks). Τα εργαλεία είναι παρεμφερή με εκείνα που είναι διαθέσιμα σε πολλά πραγματικά παράλληλα συστήματα, όμως προκειμένου να βοηθηθεί ο φοιτητής, η χρήση τέτοιων εργαλείων στα συστήματα προσομοίωσης έχει γίνει όσο το δυνατόν πιο απλή. Ένα από τα πιο χρήσιμα χαρακτηριστικά του ελέγχου απόδοσης, είναι η ικανότητά του προσομοιωτή να δημιουργεί ένα γράφημα για την αποδοτικότητα των επεξεργαστών για οποιοδήποτε τμήμα και σε οποιοδήποτε επίπεδο λεπτομέρειας κατά τη διάρκεια της εκτέλεσης του προγράμματος.

Ακόμα ο προσομοιωτής της Multi-Pascal περιλαμβάνει και μια μεγάλη ποικιλία χαρακτηριστικών που επιτρέπουν την παρακολούθηση του προγράμματος ώστε να απομονωθούν τα σφάλματα. Ξανά, τα εργαλεία είναι παρόμοια με εκείνα που μπορεί να βρει ο προγραμματιστής σε πραγματικά συστήματα. Τα παράλληλα προγράμματα είναι συχνά πιο δύσκολα στην αποσφαλμάτωση σε σχέση με τα σειριακά προγράμματα εξαιτίας της δυσκολίας κατανόησης της αλληλεπίδρασης των πολλών παράλληλων τμημάτων δραστηριότητας. Μέσα από τις προγραμματιστικές εργασίες και την επαναλαμβανόμενη πρακτική εξάσκηση, ο φοιτητής θα καλλιεργήσει την ικανότητα να χρησιμοποιεί διαλογικά εργαλεία αποσφαλμάτωσης για να εντοπίζει και να απομακρύνει τα λάθη από παράλληλα προγράμματα. Η δεξιότητα στην αποσφαλμάτωση μπορεί να αναπτυχθεί μόνο μέσα από την πρακτική με την κωδικοποίηση και τον έλεγχο παράλληλων προγραμμάτων. Για αυτό και χρήση λογισμικού προσομοίωσης αποτελεί ένα ζωτικό σημείο της εκπαιδευτικής διαδικασίας.

Ένα άλλο σημαντικό σημείο της πρακτικής εκμάθησης του παράλληλου προγραμματισμού είναι η εξοικείωση με τον τρόπο που εκτελούνται διαφορετικοί τύποι παράλληλων αλγόριθμων σε διαφορετικούς τύπους παράλληλης αρχιτεκτονικής. Ένας παράλληλος αλγόριθμος που φαίνεται να επιτυγχάνει υψηλή επιτάχυνση θεωρητικά, μπορεί να αποδίδει πολύ καλά σε ορισμένες αρχιτεκτονικές και άσχημα σε άλλες. Σε αυτό το σημείο τονίζεται και πάλι, πόσο μεγάλη σημασία έχουν η πρακτική και η εμπειρία. Το σύστημα προσομοίωσης της Multi-Pascal διαθέτει χαρακτηριστικά που επιτρέπουν στον προγραμματιστή να επιλέξει τα βασικά στοιχεία της παράλληλης αρχιτεκτονικής που θέλει να προσομοιώσει. Κατ΄ αυτόν τον τρόπο, οι φοιτητής θα αποκτήσει εμπειρία με τον τρόπο συμπεριφοράς μιας μεγάλης γκάμας παράλληλων αρχιτεκτονικών, κατανοώντας τις βασικές κλάσεις παράλληλων αλγόριθμων. Διαμέσου της εμπειρίας βελτιστοποίησης της απόδοσης διαφόρων αλγόριθμων σε διαφορετικές αρχιτεκτονικές, ο φοιτητής θα αναπτύξει μια πρακτική κατανόηση για το πως πρέπει να γράφεται παράλληλο λογισμικό που να λειτουργεί αποδοτικά σε διαφορετικούς τύπους αρχιτεκτονικής.


     Next                 Up                   Back                   Contents           

Επόμενο:1.9 ѡ򢬫謩� � ⮨򿱩�𐤩�/a> Πάνω:Κεφάλαιο 1ο: Γιατί Παράλληλος Προγραμματισμός ;  Πίσω:1.7 Παράλληλοι Αλγόριθμοι