Next                  Up                    Back                 Contents             

Επόμενο:1.5 Παράλληλος Προγραμματισμός Πάνω: Κεφάλαιο 1ο: Γιατί Παράλληλος Προγραμματισμός ; Πίσω:1.3 Αρχιτεκτονική Παράλληλων Συστημάτων Διαμοιραζόμενης Μνήμης                                                  


 

1.4 Παράλληλα συστήματα κατανεμημένης μνήμης

 

 

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

     messagePassing

ΣΧHMA 1.3 Οργάνωση Συστήματος Κατανεμημένης Μνήμης

 

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

Υπάρχει μια μεγάλη ποικιλία διαφορετικών τοπολογιών δικτύου επικοινωνίας, που έχουν αναπτυχθεί για παράλληλα συστήματα κατανεμημένης μνήμης. Σκοπός αυτών των τοπολογιών, είναι να προσπαθήσουν να μειώσουν το κόστος και την πολυπλοκότητα του δικτύου, όταν η γρήγορη επικοινωνία μεταξύ των επεξεργαστών επιτρέπεται. Γενικά δεν είναι δυνατό σε μεγάλα παράλληλα συστήματα κατανεμημένης μνήμης να εξασφαλιστεί επικοινωνία ανάμεσα σε κάθε ζευγάρι επεξεργαστών, μια και αυτό θα απαιτούσε n 2 κανάλια επικοινωνίας για n επεξεργαστές. Για να διατηρηθεί ένα λογικό κόστος και να επιτραπεί στο σύστημα να αυξήσει εύκολα τον αριθμό των επεξεργαστών του, ο αριθμός των μονοπατιών επικοινωνίας που φτάνουν σε κάθε επεξεργαστή πρέπει να είναι σταθερός(ανεξάρτητος από τον συνολικό αριθμό επεξεργαστών) ή να αυξάνει λογαριθμικά με το συνολικό αριθμό επεξεργαστών. Οι σημαντικές τοπολογίες παράλληλων συστημάτων κατανεμημένης μνήμης περιγράφονται με λεπτομέρεια στο κεφάλαιο 7, περιλαμβάνοντας τις τοπολογίες του υπερκύβου, του δακτυλίου, του πλέγματος και του τόρου.

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

 


     Next                  Up                    Back                 Contents             

Επόμενο:1.5 Παράλληλος Προγραμματισμός Πάνω: Κεφάλαιο 1ο: Γιατί Παράλληλος Προγραμματισμός ;  Πίσω:1.3 Αρχιτεκτονική Παράλληλων Συστημάτων Διαμοιραζόμενης Μνήμης