Next              Up                Back                  Contents 

Επόμενο:8.1 Θύρες Επικοινωνίας Πάνω: Περιεχόμενα Πίσω: Ασκήσεις


 

Κεφάλαιο 8o: Προγράμματα περάσματος μηνυμάτων

 

 

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

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

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

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

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



     Next              Up                Back                  Contents 

Επόμενο:8.1 Θύρες Επικοινωνίας Πάνω: Περιεχόμενα Πίσω: Ασκήσεις