Next             Up                 Back               Contents

Επόμενο:Αναφορές Πάνω: Κεφάλαιο 5ο : Μοίρασμα Δεδομένων Πίσω: 5.5 Συγκρίνοντας το Κλείδωμα και τα Κανάλια


 

5.6 Περίληψη

 

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

Ο αμοιβαίος αποκλεισμός των παράλληλων διεργασιών που είναι αποτέλεσμα των ατομικών λειτουργιών δημιουργεί μια ακολουθιακή καθυστέρηση στην εκτέλεση του προγράμματος. Σε κάποια προγράμματα, που χρησιμοποιούν πολύ διαμοιραζόμενα δεδομένα, αυτό μπορεί να οδηγήσει σε προβλήματα ανταγωνισμού και συνεπώς σε μείωση της απόδοσης του προγράμματος. Το πρόβλημα του ανταγωνισμού δεν αφορά μόνα το κλείδωμα - θα δημιουργηθεί σε κάθε γλωσσική δομή που εγγυάται την ύπαρξη των ατομικών λειτουργιών. Υπάρχουν πολλοί τρόποι επίλυσης του προβλήματος ανταγωνισμού και οι οποίοι μπορούν να εφαρμοστούν σε διαφορετικά προβλήματα. Όμως, ο γενικός κανόνας είναι η αποκέντρωση των δεδομένων και των μηχανισμών ελέγχου πρόσβασης. Αυτή η αποκέντρωση επιτρέπει σε πολλές παράλληλες διεργασίες να προσπελάσουν παράλληλα διαφορετικά τμήματα διαμοιραζομένων δεδομένων και να μειωθεί έτσι η πιθανότητα ύπαρξης ανταγωνισμού. Ένα παράδειγμα είναι η διαίρεση ενός διαμοιραζομένου μετρητή σε πολλούς μετρητές που συνδιάζονται στο τέλος. Ένα άλλο παράδειγμα είναι ο περιορισμός της περιοχής αμοιβαίου αποκλεισμού με μια διαμοιραζόμενη συνδετική λίστα: ο αποκλεισμός πραγματοποιείται ξεχωριστά σε κάθε στοιχείο της λίστας πάρα σε όλη τη λίστα.

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

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

Τα κεφάλαια 4 και 5 παρουσίασαν μια εκτενή ανάλυση δυο σημαντικών χαρακτηριστικών της Multi-Pascal για το συντονισμό της αλληλεπίδρασης των διεργασιών: των καναλιών και των κλειδωμάτων. Τα κανάλια χρησιμοποιούνται για την επικοινωνία μεταξύ των διεργασιών και το κλείδωμα για ατομικές λειτουργίες πάνω σε διαμοιραζόμενα δεδομένα. Στα επόμενα κεφάλαια θα υπάρξουν περισσότερα παραδείγματα σχετικά με τη χρήση αυτών των δύο δομών. Για λόγους που θα αναπτυχθούν αργότερα, πρέπει να πούμε ότι το κλείδωμα επιτρέπεται μόνο σε παράλληλο σύστημα διαμοιραζόμενης μνήμης. Όταν η Multi-Pascal εφαρμόζεται σε παράλληλο σύστημα κατανεμημένης μνήμης επιτρέπονται μόνο τα κανάλια, όχι το κλείδωμα.


     Next             Up                Back               Contents

Επόμενο:Αναφορές Πάνω: Κεφάλαιο 5ο : Μοίρασμα Δεδομένων Πίσω: 5.5 Συγκρίνοντας το Κλείδωμα και τα Κανάλια