«ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΑΡΑΛΛΗΛΟΥ ΥΠΟΛΟΓΙΣΜΟΥ»



Σχετικά έγγραφα
Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

Αρχιτεκτονική Υπολογιστών

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

EM 361: Παράλληλοι Υπολογισμοί

Αρχιτεκτονική υπολογιστών

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική υπολογιστών

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

Εισαγωγή στην Επιστήμη των Υπολογιστών

Δίκτυα Διασύνδεσης. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων

Αρχιτεκτονική Υπολογιστών

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Πολυπύρηνοι επεξεργαστές Multicore processors

9. Συστολικές Συστοιχίες Επεξεργαστών

Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Η ΤΑΞΙΝΟΜΗΣΗ ΤΟΥ FLYNN!!! 1 ο ΕΠΑΛ ΡΟΔΟΥ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ!!!! Χατζηνικόλας Κώστας

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

Βασική δοµή και Λειτουργία Υπολογιστή

Κεντρική Μονάδα Επεξεργασίας

Κεφάλαιο 3 Πολυπλεξία

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή Αρχιτεκτονικές παράλληλης επεξεργασίας

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 6 : Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Δρ.

Μεταγωγείς πακέτων (packet switches)

Κεφάλαιο 4: Λογισμικό Συστήματος

Διαφορές single-processor αρχιτεκτονικών και SoCs

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος

Βασικές Έννοιες Πληροφορικής

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ << ΜΕΛΕΤΗ ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ CUDA ΚΑΙ ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΡΤΩΝ GPU ΤΗΣ NVIDIA >> Αρ. Μητρώου: 04/2519

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Δίκτυα Υπολογιστών I

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΙΚΟΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

1.5.1 ΓΕΦΥΡΑ (BRIDGE) Εικόνα Επίπεδα λειτουργίας επαναλήπτη, γέφυρας, δρομολογητή και πύλης ως προς το μοντέλο OSI.

Αρχιτεκτονική υπολογιστών

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

Διάρθρωση. Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης. Διάρθρωση. Δίκτυο Υπολογιστών: ένας απλός ορισμός. Ευάγγελος Παπαπέτρου

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Σημειώσεις Θεωρίας

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

7. Παραλληλοποίηση Κώδικα, Χρονοδρομολόγηση

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ: Δίκτυα Μεταγωγής & Τεχνικές Μεταγωγής Σε Δίκτυα Ευρείας Περιοχής

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

Αρχιτεκτονική υπολογιστών

Δομή Ηλεκτρονικού υπολογιστή

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

Transcript:

Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΘΕΜΑ ΕΡΓΑΣΙΑΣ «ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΑΡΑΛΛΗΛΟΥ ΥΠΟΛΟΓΙΣΜΟΥ» ΤΗΣ ΣΠΟΥΔΑΣΤΡΙΑΣ ΠΑΠΑΔΟΠΟΥΛΟΥ ΕΥΑΓΓΕΛΙΑΣ ΕΠΙΒΛΕΠΩΝ ΓΚΟΥΜΑΣ ΣΤΕΦΑΝΟΣ Καθηγητής Εφαρμογών ΚΑΒΑΛΑ ΕΤΟΣ 2007

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 3 ΚΕΦΑΛΑΙΟ 1... 5 1.1 Η ΙΣΤΟΡΙΑ ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ... 5 1.2 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΑΡΑΛΛΗΛΩΝ ΥΠΟΛΟΓΙΣΤΩΝ... 8 1.2.1 ΥΠΟΛΟΓΙΣΤΕΣ ΜΕ ΣΩΛΗΝΩΣΗ... 8 1.2.2 ΕΠΕΞΕΡΓΑΣΤΕΣ ΜΗΤΡΩΟΥ... 10 1.2.3 ΜΗΧΑΝΕΣ ΠΟΛΥΕΠΕΞΕΡΓΑΣΙΑΣ... 10 1.3 ΤΑΞΙΝΟΜΗΣΗ ΠΑΡΑΛΛΗΛΩΝ ΥΠΟΛΟΓΙΣΤΩΝ... 11 1.3.1 ΣΥΓΧΡΟΝΟΣ ΣΥΝΤΟΝΙΣΜΟΣ... 11 1.3.2 ΑΣΥΓΧΡΟΝΟΣ ΣΥΝΤΟΝΙΣΜΟΣ... 13 1.4 ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ FLYNN... 14 1.5 ΕΦΑΡΜΟΓΕΣ ΠΑΡΑΛΛΗΛΩΝ ΥΠΟΛΟΓΙΣΤΩΝ... 17 ΚΕΦΑΛΑΙΟ 2... 19 2.1 ΓΕΝΙΚΑ... 19 2.2 ΔΙΚΤΥΑ ΔΙΑΣΥΝΔΕΣΗΣ... 21 2.2.1 ΔΙΚΤΥΑ ΜΟΝΑΔΙΚΟΥ ΣΤΑΔΙΟΥ (SINGLE STAGE NETWORKS)... 24 2.2.2 ΔΊΚΤΥΑ ΠΟΛΛΑΠΛΟΎ ΣΤΑΔΊΟΥ (MULTIPLE STAGE NETWORKS)... 28 2.3 ΠΟΛΥΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΠΟΛΥΥΠΟΛΟΓΙΣΤΕΣ... 41 ΚΕΦΑΛΑΙΟ 3... 45 3.1 ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ... 45 3.2 Ο ΝΟΜΟΣ ΤΟΥ AMDHAL... 46 3.3 TRANSPUTERS ΚΑΙ ΓΛΩΣΣΑ OCCAM... 48 3.4 Η ΕΠΙΚΟΙΝΩΝΙΑ ΜΕΤΑΞΥ ΔΙΕΡΓΑΣΙΩΝ... 52 3.4.1 ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΤΟΥ ΥΛΙΚΟΥ... 52 3.4.2 ΧΡΗΣΗ ΚΟΙΝΩΝ ΑΓΑΘΩΝ... 54 3.4.3 ΣΥΓΧΡΟΝΙΣΜΟΣ ΔΙΕΡΓΑΣΙΩΝ... 59 3.5 ΑΔΙΕΞΟΔΑ ΚΑΙ ΑΠΟΦΥΓΗ ΤΟΥΣ... 62 3.6 ΠΑΡΑΛΛΗΛΕΣ ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ... 66 3.6.1 ΟΙ ΕΝΤΟΛΕΣ FORK ΚΑΙ JOIN... 66 3.6.2 ΟΙ ΕΝΤΟΛΕΣ PARBEGIN ΚΑΙ PAREND... 69 ΚΕΦΑΛΑΙΟ 4... 71 4.1 ΕΙΣΑΓΩΓΗ... 71 4.2 ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΠΑΡΑΛΛΗΛΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΩΝ ΤΕΧΝΙΚΩΝ... 72 1

4.3 ΚΡΙΤΗΡΙΑ ΜΕΙΩΣΗΣ ΑΠΟΔΟΣΗΣ ΠΑΡΑΛΛΗΛΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ... 75 4.4 Η ΔΙΑΔΙΚΑΣΙΑ ΠΑΡΑΛΛΗΛΟΠΟΙΗΣΗΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ... 77 4.4.1 ΒΗΜΑ 1: ΑΠΟΣΥΝΘΕΣΗ ΑΛΓΟΡΙΘΜΟΥ ΣΕ ΕΡΓΑΣΙΕΣ.... 78 4.4.2 ΒΗΜΑ 2: ΑΝΑΘΕΣΗ ΕΡΓΑΣΙΩΝ ΣΕ ΔΙΕΡΓΑΣΙΕΣ.... 81 4.4.3 ΒΗΜΑ 3: ΧΡΟΝΟΔΡΟΜΟΛΟΓΗΣΗ... 85 4.5 ΑΝΑΘΕΣΗ ΚΑΙ ΧΡΟΝΟΔΡΟΜΟΛΟΓΗΣΗ... 87 ΚΕΦΑΛΑΙΟ 5... 89 5.1 Ο ΑΛΓΟΡΙΘΜΟΣ ODD-EVEN TRANSPOSITION... 89 5.2 Ο ΑΛΓΟΡΙΘΜΟΣ SHELL-SORT... 91 5.3 Ο ΑΛΓΟΡΙΘΜΟΣ QUICKSORT... 93 5.4 Ο ΑΛΓΟΡΙΘΜΟΣ BUCKET SORT... 95 5.5 Ο ΑΛΓΟΡΙΘΜΟΣ RADIX SORT... 96 ΒΙΒΛΙΟΓΡΑΦΙΑ... 97 2

ΕΙΣΑΓΩΓΗ Οι μεγάλες προκλήσεις του αιώνα μας, όπως αποκαλούνται συνήθως τα σύγχρονα πολύπλοκα επιστημονικά προβλήματα, τα οποία αφορούν την ιατρική, την φαρμακολογία, την αστροφυσική, αντιμετωπίζονται σήμερα με αριθμητική προσομοίωση, η οποία απαιτεί τεράστια υπολογιστική ισχύ, την οποία οι ακολουθιακοί υπολογιστές δεν διαθέτουν. Αν, για παράδειγμα, σκεφθεί κανείς ότι ένα σύγχρονο υπολογιστικό πείραμα πρόβλεψης των δομικών ταλαντωτικών και ηλεκτρονικών ιδιοτήτων ενός νέου υλικού, απαιτεί 150 τρισεκατομμύρια πράξεις κινητής υποδιαστολής, θα συνειδητοποιήσει την αδήριτη ανάγκη σχεδιασμού και παραγωγής συστημάτων υπολογιστών επιδεκτικών υπολογισμών τέτοιου μεγέθους. Τέτοια συστήματα υπάρχουν ήδη και είναι γνωστά ως παράλληλοι υπολογιστές Τομέα αιχμής για την αποδοτική εκμετάλλευση των σύγχρονων παράλληλων υπολογιστικών συστημάτων καθώς και για την οικονομικότερη ανάπτυξη και συντήρηση εφαρμογών με υψηλές υπολογιστικές απαιτήσεις αποτελεί η αυτόματη παραλληλοποίηση αλγορίθμων. Στα προηγούμενα χρόνια αναπτύχθηκε μια τεράστια βιβλιοθήκη προγραμμάτων που εκτελούνταν ακολουθιακά σε συμβατούς υπολογιστές, ο χρόνος όμως εκτέλεσης τους ήταν πολύ μεγάλος και απαγορευτικός πολλές φορές για την περαιτέρω αξιοποίηση των αποτελεσμάτων. Η διαδικασία παραλληλοποίησης προγραμμάτων, είτε αυτή γίνεται από κάποιον προγραμματιστή, είτε από κάποιο αυτόματο εργαλείο προϋποθέτει την εφαρμογή αποδοτικών μεθόδων δρομολόγησης των διεργασιών και απεικόνισης τους ώστε να επιτυγχάνεται η μέγιστη δυνατή εκμετάλλευση των διαθέσιμων υπολογιστικών πόρων. Η εργασία αυτή αποτελείται από πέντε κεφάλαια: Στο πρώτο κεφάλαιο θα δούμε τα είδη των παράλληλων υπολογιστών και τις εφαρμογές αυτών. Επίσης σε αυτό το κεφάλαιο περιγράφονται και τα πρότυπα SISD, SIMD, MISD και MIMD. Στο δεύτερο κεφάλαιο αναλύονται τα δίκτυα διασύνδεσης που χρησιμοποιούνται στους παράλληλους υπολογιστές. Ακόμα θα δούμε, εν συντομία, τους πολυεπεξεργαστές, και τους πολυυπολογιστές. 3

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

ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΠΑΡΑΛΛΗΛΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1.1 Η ΙΣΤΟΡΙΑ ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Είναι γνωστό ότι οι αρχικοί υπολογιστές αναπτύχθηκαν και χρησιμοποιήθηκαν κυρίως για αριθμητικές εφαρμογές ( π.χ. επίλυση διαφορικών εξισώσεων). Τα τεχνολογικά δεδομένα της εποχής εκείνης δεν επέτρεπαν την χρήση υπολογιστών ούτε για τις πιο απλές εφαρμογές (λόγω του υψηλού κόστους των τότε υπολογιστών), ούτε για πιο πολύπλοκες (λόγω της χαμηλής ταχύτητας εκτέλεσης). Η αλλαγή όμως των δεδομένων στην τεχνολογία των υπολογιστών επέτρεψε τόσο την πτώση του κόστους του υλικού, όσο και την σημαντική αύξηση της ταχύτητας των υπολογιστών. Αυτό είχε σαν συνέπεια τη διεύρυνση του φάσματος των προβλημάτων που μπορούσαν να επιλυθούν από υπολογιστές. Αυτή η εξέλιξη επιταχύνθηκε με την εισαγωγή των μικροεπεξεργαστών και της τεχνολογίας. Επειδή όμως η πίεση για ακόμα ισχυρότερους υπολογιστές εξακολουθούσε να αυξάνει, οι σχεδιαστές υπολογιστικών συστημάτων έστρεψαν την προσοχή τους και σε ένα νέο πεδίο: την παράλληλη επεξεργασία. Στον πίνακα 1 φαίνονται οι πέντε βασικές φάσεις εξέλιξης της αρχιτεκτονικής των υπολογιστών. Οι φάσεις καλούνται γενιές λόγω των σημαντικών αλλαγών μεταξύ τους Πρώτη γενιά. Όσον αφορά το υλικό (hardware) οι υπολογιστές πρώτης γενιάς αποτελούνταν από λυχνίες και μνήμες ρελαί. Από αρχιτεκτονικής απόψεως υπήρχε μια κεντρική μονάδα επεξεργασίας (Central Processing Unit: CPU) η οποία εκτελούσε πράξεις σταθερής υποδιαστολής, περιείχε ένα συσσωρευτή και ένα μετρητή προγράμματος (Program Counter: PC). Οι δύσχρηστες γλώσσες μηχανής ή assembly χρησιμοποιούνταν για την ανάπτυξη λογισμικού. Δεύτερη γενιά Ως προς το υλικό οι υπολογιστές δεύτερης γενιάς είχαν μια σημαντική διαφορά από τους προγενέστερους: το τρανζίστορ αντί για λυχνίες. Επίσης η μνήμη αποτελείτο από μικρούς μαγνητικούς δακτυλίους (core memory). Αρχιτεκτονικά υπήρχε ένας επεξεργαστής µε καταχωρητές, αριθμητική κινητής υποδιαστολής, πολυπλεγμένη προσπέλαση στη μνήμη ενώ αναπτύχθηκαν ειδικοί επεξεργαστές για λειτουργίες 5

εισόδου/ εξόδου. Ταυτόχρονα εμφανίστηκαν οι πρώτες γλώσσες υψηλού επιπέδου (Fortran, Algol, Cobol), μαζί µε τους απαιτούμενους μεταφραστές (compilers), τις βιβλιοθήκες υπορουτινών. Η εκτέλεση των προγραμμάτων γινόταν σε μορφή batch, δηλαδή το ένα πρόγραμμα τελείωνε πλήρως πριν εκτελεστεί το επόμενο. Τρίτη γενιά. Το υλικό της τρίτης γενιάς ακολουθεί την κατεύθυνση των ολοκληρωμένων κυκλωμάτων μικρής και μεσαίας πυκνότητας (Small/Medium Scale Integration: SSI/MSI) μέχρι 10000 τρανζίστορς ανά chip. Η αρχιτεκτονική εξακολουθεί να βασίζεται σε μια κεντρική μονάδα επεξεργασίας αλλά τώρα οι διεργασίες μπορούν να τρέχουν ταυτόχρονα μοιράζοντας το χρόνο της CPU µε κάποιο αλγόριθμο time-sharing δηλαδή, πολλοί χρήστες μπορούν να χρησιμοποιούν ταυτόχρονα τη CPU, ενώ εμφανίζονται τα αντίστοιχης πολυπλοκότητας λειτουργικά συστήματα όπως το UNIX (1973). Τέταρτη γενιά. Στην γενιά αυτή εμφανίζονται τα κυκλώματα μεγάλης και πολύ μεγάλης πυκνότητας (LSI/VLSI) μέχρι 1 εκατομμύριο τρανζίστορς ανά chip. Εμφανίζονται οι πολυεπεξεργαστές και τα αντίστοιχα λειτουργικά συστήματα, καθώς και οι παράλληλες γλώσσες προγραμματισμού. Πέμπτη γενιά. Οι υπολογιστές του σήμερα χρησιμοποιούν τεχνολογία υπερβολικά μεγάλης πυκνότητας ολοκλήρωσης (μέχρι 256 εκατομμύρια τρανζίστορ /chip) και χρησιμοποιούν ταχύτητες ρολογιού που ξεπερνούν τα 3 GHz. Αρχιτεκτονικά τα παράλληλα συστήματα φτάνουν σε ωριμότητα και εμφανίζονται οι πρώτοι παράλληλοι επεξεργαστές για κοινή και καθημερινή χρήση. Αναπτύσσονται τα clusters, δηλαδή μεγάλες ομάδες απλών υπολογιστών γραφείου οι οποίοι συνδεδεμένοι μέσα από ένα υπερταχύ τυποποιημένο δίκτυο προσφέρουν τεράστιες επεξεργαστικές και αποθηκευτικές δυνατότητες διατυπώνονται οι μεγάλες προκλήσεις (grand challenges) της υπολογιστικής και των τηλεπικοινωνιών. Αυτές είναι πολύ μεγάλες και από υπολογιστικής απόψεως εξαιρετικά απαιτητικές εφαρμογές µε σπουδαία πρακτική αξία καθώς επηρεάζουν την καθημερινή µας ζωή, άμεσα ή μακροπρόθεσμα. Τέτοιες εφαρμογές είναι π.χ., η όραση των υπολογιστών, η μελέτη του κλίματος και η μακροπρόθεσμη πρόγνωση του καιρού, η μοντελοποίηση των ωκεανών, της ζώνης του όζοντος, ο σχεδιασμός πρωτεϊνών και φαρμάκων µέσω της μοντελοποίησης και της οπτικοποίησης των µορίων ([1]). 6

ΓΕΝΙΑ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟ ΕΦΑΡΜΟΓΕΣ Πρώτη Λυχνίες και µνήµες ρελαί Γλώσσα µηχανής / (1945-54) Μια CPU, µε assembly, ένας συσσωρευτή και αριθµητική σταθερής υποδιαστολής χρήστης, προγραµµατιζόµενη είσοδος έξοδος χρησιµοποιώντας τη CPU ΑΝΤΙΠΡΟΣΩΠΕΥΤΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ENIAC Princeton IAS IBM 701 Δεύτερη (1955-64) Transistors, μνήμες core, αριθμητική κινητής υποδιαστολής, επεξεργαστές Ε/Ε, Γλώσσες υψηλού επιπέδου, μεταφραστές, βιβλιοθήκες µε υπορουτίνες, εκτέλεση IBM 7090 CDC 1604 Univac LARC πολυπλεγμένη προγραμμάτων σε προσπέλαση μνήμης δέσμες (batch) Τρίτη (1965-74) Ολοκληρωμένα κυκλώματα (SSI/MSI), μικροπρογραμματισμός, pipelining, μνήμες cache Πολυπρογραμματισµός, λειτουργικά συστήματα, μοίρασμα του χρόνου, πολλοί IBM 360/370 CDC 6600 PDP-11 χρήστες Τέταρτη (1975-90) LSI/VLSI, μνήμες ημιαγωγών, πολυεπεξεργαστές, διανυσματικοί Παράλληλα λειτουργικά συστήματα, γλώσσες, μεταφραστές και VAX 9000 Cray X-MP IBM 3090 υπερυπολογιστές περιβάλλοντα για (supercomputers), παράλληλη πολυυπολογιστές επεξεργασία Πέµπτη (1991-σήµερα) ULSI/VHSIC, διακόπτες, επεκτάσιµες Αρχιτεκτονικές Μαζικά παράλληλη επεξεργασία, µεγάλες προκλήσεις (grand challenge applications Fujitsu VPP500 Cray MPP Intel Paragon Πίνακας 1. Οι βασικές φάσεις εξέλιξης της αρχιτεκτονικής των υπολογιστών 7

1.2 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΑΡΑΛΛΗΛΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Οι παράλληλοι υπολογιστές διαιρούνται σε τρεις κυρίως αρχιτεκτονικές διατάξεις ([1]): Υπολογιστές με σωλήνωση (Pipeline computers) Επεξεργαστές μητρώου (Array processors) Μηχανές πολυεπεξεργασίας (Multiprocessors machines) Ένας υπολογιστής με σωλήνωση (pipeline) εκτελεί υπολογισμούς που επικαλύπτονται για να πετύχει παραλληλία στο χρόνο. Ένας επεξεργαστής μητρώου (array processor) χρησιμοποιεί πολλαπλές συγχρονισμένες αριθμητικές και λογικές μονάδες (ALU s) για να πετύχει παραλληλισμό στο χώρο. Ένα σύστημα πολυεπεξεργασίας (multiprocessor) πετυχαίνει ασύγχρονο παραλληλισμό με ένα σύνολο επεξεργαστών που επικοινωνούν μεταξύ τους και μοιράζονται κοινές μνήμες, βάσεις δεδομένων. 1.2.1 Υπολογιστές με σωλήνωση Η διαδικασία εκτέλεσης μιας εντολής από έναν υπολογιστή περιλαμβάνει τέσσερα βασικά βήματα: instruction fetch (ΙF) δηλαδή την ανάκληση της εντολής, instruction decoding (ΙD) δηλαδή την αποκωδικοποίηση της εντολής, operand fetch(οf) δηλαδή την ανάκληση του παράγοντα αν χρειάζεται, και execution (EΧ) δηλαδή την εκτέλεση της εντολής. Σε έναν υπολογιστή πού δεν χρησιμοποιεί pipeline, αυτά τα βήματα κάθε εντολής πρέπει να εκτελεσθούν πριν αρχίσει η διαδικασία εκτέλεσης της επόμενης εντολής (Σχήμα 1). Σε έναν υπολογιστή που περιλαμβάνει pipeline, οι διεργασίες αυτές επικαλύπτονται με τις διεργασίες διαδοχικών εντολών, όπως φαίνεται στο Σχήμα 2. Έτσι για παράδειγμα, μπορεί να αρχίσει το instruction fetch μιας εντολής καθώς εκτελείται το instruction fetch της προηγούμενης. Θεωρητικά, ένας υπολογιστής με σωλήνωση με k στάδια pipeline μπορεί να είναι μέχρι k φορές ταχύτερος από έναν υπολογιστή χωρίς pipeline. Στην πράξη δεν συμβαίνει αυτό γιατί μπορεί να έχουμε αλλαγές ροής, interrupts, εξάρτηση δεδομένων 8

EX OP ID stage s I1 I1 I1 I2 I2 I2 IF I1 I2 1 2 3 4 5 6 7 8 time Σχήμα 1 Υπολογιστής που δεν χρησιμοποιεί pipeline Pipeline stages EX OP I1 I1 I2 I2 I3 I3 I4 I4 I5 I5 ID I1 I2 I3 I4 I5 IF I1 I2 I3 I4 I5 time Σχήμα 2 Υπολογιστής που περιλαμβάνει pipeline 9

1.2.2 Επεξεργαστές μητρώου Ένας επεξεργαστής μητρώου (array processor) είναι ένας υπολογιστής που διαθέτει πολλές αριθμητικές και λογικές μονάδες, ονομαζόμενες processing elements (ΡΕ), και οι οποίες λειτουργούν σε απόλυτο συγχρονισμό. Τα array processors χρησιμοποιούνται κυρίως για εξειδικευμένους υπολογισμούς όπως είναι ο πολλαπλασιασμός μητρώων, η επεξεργασία εικόνων. Συνήθως τα processing elements ενός array processor είναι συνδεδεμένα μεταξύ τους με κάποιο δίκτυο, η μορφή του οποίου εξαρτάται από την εφαρμογή. Ένα παράδειγμα array processor για πολλαπλασιασμό μητρώων φαίνεται στο Σχήμα 3. Οι array processors μπορούν να πετύχουν πολύ μεγάλες ταχύτητες επεξεργασίας, αλλά δεν μπορούν να χρησιμοποιηθούν για γενικής φύσεως εφαρμογές. Σχήμα 3Array processor για πολλαπλασιασμό μητρώων 1.2.3 Μηχανές πολυεπεξεργασίας Τα συστήματα πολλαπλών επεξεργαστών αποτελούνται από έναν αριθμό υπολογιστών συνδεδεμένων μεταξύ τους είτε απ' ευθείας είτε μέσω κοινής μνήμης. Οι υπολογιστές αυτοί επεξεργάζονται τμήματα της ίδιας εφαρμογής παράλληλα, και επικοινωνούν μεταξύ τους για την ανταλλαγή πληροφοριών και δεδομένων. Συνηθισμένες συνδεσμολογίες είναι το κοινό bus, οι διακόπτες crossbar, και μνήμες πολλαπλών εισόδων και εξόδων. 10

1.3 ΤΑΞΙΝΟΜΗΣΗ ΠΑΡΑΛΛΗΛΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Οι παράλληλοι υπολογιστές μπορούν να ταξινομηθούν σύμφωνα με το Σχήμα4: Παράλληλοι υπολογιστές Σύγχρονοι (Synchronous) Ασύγχρονοι (Asynchronous) Vector/ Array SISD MIMD Reduction Systolic Σχήμα 4 Ταξινόμηση παράλληλων υπολογιστών Στα παράλληλα προγράμματα χρειάζεται συντονισμός όταν μία εργασία (task) εξαρτάται από μία άλλη. Υπάρχουν δύο γενικώς μέθοδοι συντονισμού παράλληλων υπολογιστών Σύγχρονος συντονισμός Ασύγχρονος συντονισμός 1.3.1 ΣΥΓΧΡΟΝΟΣ ΣΥΝΤΟΝΙΣΜΟΣ Στην περίπτωση αυτή υπάρχει σύγχρονος ή lockstep συντονισμός στο hardware. Εκτελούνται όλες οι πράξεις συγχρόνως και με τρόπο ο οποίος αφαιρεί την εξάρτηση της μιας εργασίας από την άλλη. Στην κατηγορία αυτήν των σύγχρονων υπολογιστών ανήκουν οι ακόλουθοι τύποι υπολογιστών: Vector/ Array Οι υπολογιστές με σωλήνωση (pipeline computers) ανήκουν στην κατηγορία αυτή. Όταν οι εργασίες μπορούν να χωριστούν σε φάσεις (stages) οι οποίες να εκτελούνται στη 11

σειρά με διαφορετικούς επεξεργαστές, τότε έχουμε παράλληλη επεξεργασία πολλαπλών εργασιών κάθε μία από τις οποίες βρίσκεται σε διαφορετική φάση. Από την άποψη μιας εργασίας ο χρόνος απόκρισης ( response time) είναι ο ίδιος αλλά ο συνολικός χρόνος (total time) για όλες τις εργασίες είναι μικρότερος. Επειδή αυτή τη μορφή παραλληλισμού μπορούν να την αξιοποιούν καλύτερα προβλήματα που συνεπάγονται πράξεις σε πίνακες και διανύσματα για αυτό και η επεξεργασία σωλήνωσης (pipeline processing) αναφέρεται συχνά σαν vector/array επεξεργασία. SIMD (Single Instruction Multiple Data) Πολλαπλά στοιχεία επεξεργασίας εκτελούν την ίδια εντολή την ίδια χρονική στιγμή ή παραμένουν ανενεργά. Υπάρχει μία μονάδα ελέγχου μόνο. Οι υπολογιστές Thinking Machine, Connection Machine και MasPar είναι παραδείγματα SIMD υπολογιστών. Συστολικοί (Systolic) Ένας συστολικός παράλληλος υπολογιστής είναι υπολογιστής πολυεπεξεργασίας με σωλήνωση στον οποίο τα δεδομένα κατανέμονται από την μνήμη σε έναν πίνακα επεξεργαστών (array of processors) πριν επιστραφούν στην μνήμη. Μία μακροσκοπική αντίληψη της συστολικής επεξεργασίας είναι εκείνη ενός πίνακα επεξεργαστών που έχει την μνήμη σαν όπιο στον πίνακα. Περιλαμβάνει χαρακτηριστικά και της επεξεργασίας με σωλήνωση και της SIMD. Το σημαντικότερο πλεονέκτημα αυτού του τύπου της παράλληλης επεξεργασίας είναι ότι επιτυγχάνονται πολύ υψηλές ταχύτητες αποφεύγοντας bottlenecks εισόδου εξόδου. Αυτό συνήθως επιτυγχάνεται με το να κυκλοφορούν τα δεδομένα μεταξύ των επεξεργαστών όσο περισσότερο γίνεται πριν επιστρέψουν στην μνήμη ([12]). 12

1.3.2 ΑΣΥΓΧΡΟΝΟΣ ΣΥΝΤΟΝΙΣΜΟΣ Ο τύπος αυτός ονομάζεται ασύγχρονος διότι δεν υπάρχει lockstep συντονισμός αλλά βασίζεται σε μηχανισμούς συγχρονισμού που ονομάζεται locks για τον συγχρονισμό των επεξεργαστών. Ο ασύγχρονος παραλληλισμός είναι η πιο γενική μορφή του παραλληλισμού επειδή οι επεξεργαστές εκτελούν ελεύθερα τις εργασίες (tasks) χωρίς να υπάρχει ολικός συγχρονισμός (global synchronization). Αντί των locksteps των διαφόρων τύπων του συγχρονισμένου παραλληλισμού, η ασύγχρονη μέθοδος βασίζεται σε locks και σαφή έλεγχο της ροής. MIMD (Multiple-Instruction-Multiple-Data) Ο τύπος αυτός εννοεί ότι πολλοί επεξεργαστές εκτελούν την ίδια χρονική στιγμή διαφορετικές εντολές σε διαφορετικά δεδομένα. Επίσης οι επεξεργαστές αυτοί λειτουργούν σε μεγάλο βαθμό αυτόνομα σαν να ήταν ξεχωριστοί υπολογιστές. Reduction Στους reduction υπολογιστές ο παραλληλισμός επιτυγχάνεται με μια μέθοδο που ονομάζεται demand-driver data-flow. Ένα task ενεργοποιείται για εκτέλεση από έναν επεξεργαστή όταν τα αποτελέσματα του απαιτούνται από κάποιο άλλο task το οποίο επίσης ενεργοποιείται ([12]). 13

1.4 ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ FLYNN Το 1972 ο Michael Flynn πρότεινε την ακόλουθη ταξινόμηση των υπολογιστικών συστημάτων η οποία έχει κυριαρχήσει σήμερα. Οι υπολογιστές ταξινομούνται ανάλογα µε το πόσες διαφορετικές ακολουθίες εντολών (instruction streams) εκτελούνται ταυτόχρονα σε πόσες ακολουθίες δεδομένων (data streams). Έτσι οι υπολογιστές ανήκουν σε μια από τις παρακάτω τέσσερεις κατηγορίες: 1. SISD (Single Instruction stream - Single Data stream). Ο υπολογιστής τύπου SISD εκτελεί μια µόνο εντολή κάθε χρονική στιγμή σε ένα δεδομένο. Όπως φαίνεται και στο Σχήμα 5α, το μοντέλο αυτό είναι ο κλασσικός επεξεργαστής (π.χ. ο 8086). Υπάρχει μια μονάδα ελέγχου (CU) η οποία δέχεται εντολές και εξυπηρετεί την είσοδο και την έξοδο. Η εντολή που δίνεται από τη μονάδα ελέγχου πηγαίνει στην μονάδα επεξεργασίας (PU) όπου και εκτελείται. Η μονάδα επεξεργασίας χρησιμοποιεί δεδομένα από τη μνήμη (MU) η οποία παρέχει επίσης εντολές στην μονάδα ελέγχου. 2. SIMD (Single Instruction stream - Multiple Data stream). Στον υπολογιστή τύπου SIMD (Σχήμα 5β) υπάρχουν πολλές επεξεργαστικές μονάδες που λέγονται και επεξεργαστικά στοιχεία (PE) τα οποία όμως εκτελούν την ίδια εντολή. Η εντολή προέρχεται από τη μοναδική μονάδα ελέγχου (CU) που υπάρχει στο σύστημα. Κάθε επεξεργαστική μονάδα έχει κάποια τοπική μνήμη (LM) απ' όπου αντλεί τα δεδομένα πάνω στα οποία θα εκτελεστεί η εν λόγω εντολή. Ένας υπολογιστής τύπου SIMD είναι συνήθως προσκολλημένος σε ένα κύριο υπολογιστή (π.χ. ένα SUN Workstation, ένα Pentium PC) ο οποίος στέλνει εντολές για να εκτελεστούν από τον SIMD υπολογιστή. Έτσι οι υπολογιστές αυτού του τύπου είναι αρκετά απλοί στο λογισμικό αφού δεν υπάρχει π.χ. λειτουργικό σύστημα, σπανίως χειρίζονται την είσοδο και την έξοδο (κάτι που είναι δουλειά του κεντρικού υπολογιστή). Συνήθως οι υπολογιστές αυτοί είναι κάποιου είδους επιταχυντές, δηλαδή είναι ειδικευμένοι να εκτελούν γρήγορα κάποιες ειδικές λειτουργίες που χρειάζονται σε κάποιες ειδικές 14

εφαρμογές. Για παράδειγμα κάποιοι αλγόριθμοι επεξεργασίας εικόνας, όπως η συνέλιξη ή ο μετασχηματισμός Fourier μπορούν να υλοποιηθούν εύκολα σε τέτοιου είδους υπολογιστή. 3. MISD (Multiple Instruction stream - Single Data stream). Το μοντέλο αυτό (Σχήμα 5γ) προσομοιάζει τη λειτουργία pipeline: υπάρχει μια σειρά από επεξεργαστικές μονάδες όπου η κάθε μια έχει τον δικό της ελεγκτή και επομένως εκτελεί εν γένει διαφορετική εντολή από τις άλλες. Η διαφορά από το μοντέλο MIMD είναι ότι η ακολουθία δεδομένων είναι μια. Τα δεδομένα πηγάζουν από την κύρια μνήμη, όπου τα επεξεργάζεται η πρώτη μονάδα επεξεργασίας, το αποτέλεσμα της πράξης παραδίδεται στη μονάδα 2, αυτή κατόπιν παραδίδει στη μονάδα 3, κοκ. 4. MIMD (Multiple Instruction stream - Multiple Data stream). Στα Σχήματα 5δ1 και 5δ2 φαίνεται η διάταξη ενός υπολογιστή τύπου MIMD. Εδώ υπάρχουν πολλές μονάδες ελέγχου οι οποίες εν γένει εκδίδουν διαφορετικές εντολές και υπάρχουν πολλές μονάδες επεξεργασίας (μια για κάθε μονάδα ελέγχου). Οι επεξεργαστικές μονάδες είτε επικοινωνούν μέσα από μια κοινή μνήμη (σχήμα 5δ1) είτε διαθέτουν τοπικές μνήμες (σχήμα 5δ2) οπότε επικοινωνούν μεταξύ τους µέσω κάποιου δικτύου διασύνδεσης. Έτσι το μοντέλο αυτό μοιάζει µε πολλούς υπολογιστές οι οποίοι λειτουργούν εν μέρει ανεξάρτητα μεταξύ τους αλλά συνεργάζονται για τη λύση του ίδιου προβλήματος µέσω κάποιου δικτύου επικοινωνίας. Στην αρχή της ιστορίας των παράλληλων υπολογιστών το μοντέλο SIMD μελετήθηκε πιο εκτενώς γιατί είναι και το απλούστερο. Το μοντέλο MISD δεν έχει μέχρι στιγμής υλοποιηθεί στην πράξη ως αυτόνομος και ολοκληρωμένος υπολογιστής. Δεν υπάρχει υπολογιστής στο εμπόριο ο οποίος να ακολουθεί αυτό το μοντέλο. Η φιλοσοφία του pipeline ωστόσο που κυριαρχεί στο MISD χρησιμοποιείται, και μάλιστα πολύ συχνά, σε συγκεκριμένες υπομονάδες μέσα σε επεξεργαστές. Έτσι έχουμε, π.χ. το pipeline εντολών, το pipeline της μονάδας κινητής υποδιαστολής (Floating Point Unit). Οι επεξεργαστές τύπου MIMD είναι οι πιο γενικού σκοπού και μπορούν να σταθούν µόνοι τους σαν αυτόνομοι υπολογιστές σε αντίθεση µε τους υπολογιστές τύπου SIMD οι οποίοι πρέπει να είναι συνδεδεμένοι µε κάποιο κεντρικό υπολογιστή. Στο μοντέλο 15

MIMD εντάσσονται και τα clusters καθώς αποτελούνται ουσιαστικά από πολλές μονάδες τύπου SISD συνδεδεμένες στο δίκτυο. Το μοντέλο MIMD έχει πολύ αναπτυχθεί τα τελευταία χρόνια κυρίως για δύο λόγους: o Οι μηχανές MIMD προσφέρουν ευελιξία, δηλαδή μπορούν είτε να χρησιμοποιηθούν σαν υπολογιστές ενός χρήστη όπου δίνεται η δυνατότητα επιτάχυνσης των εφαρμογών είτε σαν πολυπρογραμματιζόμενες μηχανές όπου εκτελούνται πολλές εργασίες (tasks) ταυτόχρονα. Οι μηχανές MIMD μπορούν να χτιστούν χρησιμοποιώντας κοινούς επεξεργαστές όπως o Intel Pentium. Οι περισσότεροι παράλληλοι υπολογιστές τύπου MIMD που υπάρχουν στην αγορά σήμερα χρησιμοποιούν τέτοιου τύπου επεξεργαστές ([1]). Σχήμα 5 Ταξινόμηση υπολογιστών κατά τον Flynn. 16

1.5 ΕΦΑΡΜΟΓΕΣ ΠΑΡΑΛΛΗΛΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Οι παράλληλοι υπολογιστές χρησιμοποιούνται σε μεγάλη ποικιλία προβλημάτων, από εμπορικές εφαρμογές έως μεγάλες επιστημονικές εφαρμογές που απαιτούν τεράστια υπολογιστική ισχύ. Ήδη διάφοροι υπολογιστές που κυκλοφορούν στο εμπόριο µε στόχο την αγορά μεσαίου κόστους και υψηλής απόδοσης εφαρμόζουν παράλληλη επεξεργασία. Αν και το πλήθος των επεξεργαστών δεν είναι πολύ μεγάλο όταν μιλάμε για μεσαίο κόστος (π.χ. 4 επεξεργαστές στο Quad Pentium) η χρήση τέτοιων μηχανημάτων είναι πλέον αρκετά διαδεδομένη. Φυσικά υπάρχουν -ήδη από τη δεκαετία του '70- μεγάλοι παράλληλοι υπολογιστές µε δεκάδες ή εκατοντάδες επεξεργαστές οι οποίοι όμως ανήκουν στην κατηγορία high-end και απευθύνονται µόνο σε μεγάλες επιχειρήσεις ή μεγάλους οργανισμούς. Οι παράλληλοι εμπορικοί υπολογιστές συνήθως χρησιμοποιούνται σαν servers από μεσαίες ή μεγάλες επιχειρήσεις/οργανισμούς µε σκοπό την αύξηση των πελατών που εξυπηρετούνται σε μια μονάδα χρόνου. Υπάρχει σχέση ευθείας αναλογίας μεταξύ του μεγέθους της επιχείρησης και της επίδοσης του παράλληλου συστήματος που χρησιμοποιείται από αυτή. Ένας χαρακτηριστικός δείκτης επίδοσης είναι οι συναλλαγές ανά λεπτό (transactions per minute - tpm) που χρησιµοποιείται για την αξιολόγηση της επίδοσης ενός υπολογιστικού συστήματος ως προς την ταχύτητα προσπέλασης μιας βάσης δεδομένων. Το κριτήριο tpm έχει άμεση συνάφεια µε επιχειρήσεις των οποίων η δραστηριότητα εξαρτάται άμεσα από την αποδοτική διαχείριση δεδομένων, όπως λογαριασμούς πελατών (τράπεζες, χρηματιστηριακοί οίκοι), πελατολόγια (πωλητές), μισθοδοσία (όλες οι εταιρείες), αποθήκες (super-markets, μεγάλα καταστήματα). Το benchmark TPC-C του Transaction Processing Council (TPC) σχεδιάστηκε ακριβώς µε σκοπό την μέτρηση της επίδοσης συστημάτων σε διεκπεραίωση σύνθετων ερωτημάτων (complex queries). Το συγκεκριμένο benchmark εξομοιώνει ένα μεγάλο περιβάλλον καταχώρησης δεδομένων από πολλούς περιφερειακούς σταθμούς σε μια μεγάλη βάση δεδομένων της τάξης των 3000GB. Ένας άλλος δείκτης επίδοσης µε αυξανόμενη σημασία τα τελευταία χρόνια είναι οι Web συναλλαγές ανά δευτερόλεπτο (Web interactions per second). Η ραγδαίως 17

αυξανόμενη δημοτικότητα του διαδικτύου οδήγησε το TPC στην πρόταση του TPC-W Web benchmark για τη μέτρηση αυτού του δείκτη. Το συγκεκριμένο benchmark βασίζεται στην προσπέλαση µέσω web κατανεμημένης πληροφορίας μεγέθους 500 GB. Οι επιστημονικές εφαρμογές αποτελούν το άλλο μεγάλο πεδίο εφαρμογής της παράλληλης επεξεργασίας. Η παράλληλη επεξεργασία αποτελεί βασικό εργαλείο σε προβλήματα εξομοίωσης φυσικών φαινομένων µε πάρα πολύ μεγάλους αριθμούς παραμέτρων. Τυπικά παραδείγματα, όπως καταγράφονται και στον Πίνακα 2, αποτελούν η πρόγνωση του καιρού για μεγάλα χρονικά διαστήματα, οι κινήσεις των αστέρων, η ατομική δομή των υλικών, η μελέτη των μηχανών εσωτερικής καύσεως, η αεροδυναμική μελέτη αυτοκινήτων ή αεροπλάνων, η συμπεριφορά μικροηλεκτρονικών διατάξεων, κα. Οι εφαρμογές αυτές έχουν πολύ μεγάλες απαιτήσεις πράξεων ανά δευτερόλεπτο (> 1 GFLOPS) καθώς επίσης και πολύ μεγάλες απαιτήσεις χώρου αποθήκευσης δεδομένων (> 1 GB). Όταν οι απαιτήσεις ξεπερνούν τα 100 GFLOPS και τα 100 GB τότε μιλάμε για τις μεγάλες προκλήσεις της επιστήμης των υπολογιστών (Grand Challenges). Πίνακας 2 Παραδείγματα εφαρμογών των παράλληλων υπολογιστών 18

ΚΕΦΑΛΑΙΟ 2 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ 2.1 ΓΕΝΙΚΑ Η παράλληλη επεξεργασία δηµιουργήθηκε για να ικανοποιήσει τις αυξανόµενες απαιτήσεις για ταχύτερη λειτουργία των υπολογιστών για να αντιµετωπιστούν οι περιορισµένες δυνατότητες του υλικού η οποία μπορεί να γίνει καλύτερα κατανοητή µε ένα παράδειγμα: Έστω ότι ο στόχος µας (η εφαρμογή) είναι να μεταφερθούν κάποιοι σάκοι µε άμμο στις όχθες ενός ποταμού για προστασία από τις πλημμύρες. Έστω ότι οι σάκοι βρίσκονται σε μια μεγάλη αποθήκη και ότι για να γίνει το φράγμα χρειάζονται να μεταφερθούν 100000 σάκοι άμμου. Έστω επίσης ότι ένας άνθρωπος µόνος του (δηλ. ένας επεξεργαστής) εργαζόμενος οχτώ ώρες τη μέρα μπορεί να μεταφέρει 500 σάκους τη μέρα. Μ' αυτό το ρυθμό ένας άνθρωπος µόνος του θα ολοκληρώσει το έργο σε 200 μέρες δηλαδή περίπου 6.5 μήνες. Η δουλειά προφανώς θα επιταχυνθεί αν στο έργο δουλέψουν π.χ. 100 άνθρωποι ταυτόχρονα. Τότε θεωρητικά το έργο θα τελειώσει στο 1/100 του χρόνου δηλαδή σε 2 μέρες. Για να γίνει όμως αυτό οι άνθρωποι (επεξεργαστές) πρέπει να συνεργαστούν μεταξύ τους πράγμα που προϋποθέτει ότι επικοινωνούν μεταξύ τους µε κάποιο αποδοτικό τρόπο. Πρέπει για παράδειγμα να αποφύγουν να στοιβάζουν όλοι τους σάκους στο ίδιο σημείο αλλά να απλώνουν το φράγμα κατά μήκος όλου του ποταμού. Πρέπει για παράδειγμα να συμφωνήσουν εκ των προτέρων ποιο κομμάτι του ποταμού θα επιχωματώσει ο καθένας (κατάτμηση του αλγορίθμου σε κομμάτια που θα εκτελεστούν παράλληλα). Επίσης θα πρέπει να υπάρχει κάποιος αποδοτικός τρόπος να διανέμονται οι σάκοι στον καθένα γιατί διαφορετικά αν προσπαθήσουν και οι 100 ταυτόχρονα να πάνε στην αποθήκη και να πάρουν ένα σάκο θα δημιουργηθεί συνωστισμός και αδιαχώρητο και τελικά πιθανώς δεν θα εξυπηρετηθεί κανείς. Ενδεχομένως θα ήταν πιο αποδοτικό να δημιουργηθεί μια αλυσίδα όπου ο ένας θα δίνει στον άλλο από ένα σάκο και ο τελευταίος θα τον αποθέτει στον ποταμό. Αυτό απαιτεί κάποια συνεννόηση μεταξύ των ανθρώπων η 19

οποία επιτυγχάνεται στην περίπτωσή µας µε την απλή οπτική επαφή αλλά στην περίπτωση των υπολογιστών επιτυγχάνεται µε ανταλλαγή μηνυμάτων μεταξύ των επεξεργαστών. Τέλος θα πρέπει να ενημερώνει ο ένας τον άλλο ότι πιάνει δουλειά ή ότι σταματάει είτε διότι σταμάτησε η βάρδια του είτε για άλλο λόγο (π.χ. ατύχημα). Από το παράδειγμα γίνεται σαφές ότι η παράλληλη επεξεργασία απαιτεί στενή συνεργασία μεταξύ των επεξεργαστών και ότι χαρακτηριστικό τους είναι ότι λύνουν κάποιο κοινό πρόβλημα. Ο στόχος της συνεργασίας είναι η επιτάχυνση της δουλειάς και η μεγαλύτερη απόδοση. Για τους λόγους αυτούς οι παράλληλοι υπολογιστές αποτελούνται από επεξεργαστές που βρίσκονται πολύ κοντά ο ένας µε τον άλλο, όχι απλώς στο ίδιο δωμάτιο ή στο ίδιο κουτί αλλά συχνά πάνω στην ίδια κάρτα. Στόχος είναι η ελαχιστοποίηση του χρόνου επικοινωνίας μεταξύ τους και επομένως το δίκτυο διασύνδεσης έχει τυπικά πολύ μεγάλη ταχύτητα. Σε ορισμένες μάλιστα περιπτώσεις οι επεξεργαστές σχεδιάζονται ειδικά για τη λύση ενός συγκεκριμένου προβλήματος ή μιας κατηγορίας ομοειδών προβλημάτων (π.χ. πολλαπλασιασμός πινάκων, βασικοί αλγόριθμοι επεξεργασίας εικόνας). Αυτοί οι υπολογιστές λέγονται ειδικού σκοπού και βρίσκονται σε αντίθεση µε τους υπολογιστές γενικού σκοπού που, όπως λέει και το όνομά τους, έχουν σχεδιαστεί να εκτελούν οποιαδήποτε εφαρμογή. Στο κεφάλαιο αυτό παρουσιάζονται τα χαρακτηριστικά και οι ιδιότητες διαφόρων δικτύων διασύνδεσης, τα οποία χρησιμοποιούνται είτε για την διασύνδεση επεξεργαστών με μονάδες κοινής μνήμης στους πλυεπεξεργαστές ή για την διασύνδεση επεξεργαστών μεταξύ τους στους πολυυπολογιστές. Επίσης εξετάζονται οι πολυεπεξεργαστές ομοιόμορφης προσπέλασης μνήμης (Uniform Memory Access-UMA) και μη ομοιόμορφης προσπέλασης μνήμης (Non-Uniform Memory Access-NUMA) και τα κύρια χαρακτηριστικά συγκεκριμένων πολυεπεξεργαστών. 20

2.2 ΔΙΚΤΥΑ ΔΙΑΣΥΝΔΕΣΗΣ Ένα δίκτυο διασύνδεσης παριστάνεται ως ένας γραφός, του οποίου οι κόμβοι αντιπροσωπεύουν επαξεργαστές ή μεταγωγείς δικτύου (network switches) ή μονάδες μνήμης και οι ακμές αντιπροσωπεύουν φυσικούς συνδέσμους μεταξύ ζευγών κόμβων. Προκειμένου να σχεδιασθεί το δίκτυο διασύνδεσης ενός παράλληλου υπολογιστή θα πρέπει να εξετασθούν δυο πολλοί σημαντικοί παράγοντες: το κόστος υλοποίησης του δικτύου, ήτοι ο αριθμός των ακμών που απαιτούνται για την υλοποίηση του και η απόδοση του δικτύου, ήτοι ο χρόνος ο οποίος απαιτείται για την επικοινωνία δύο επεξεργαστών ή ενός επεξεργαστή και μιας μονάδας μνήμης. Παράδειγµα 1: Γραµµικό δίκτυο (linear network) Για την διασύνδεση και επικοινωνία N επεξεργαστών απαιτούνται N-1 σύνδεσµοι. Για να ανταλλάξουν δεδοµένα οι επεξεργαστές 1 και N-1 απαιτούνται N-1 βήµατα. Παράδειγµα 2: Πλήρες δίκτυο (fully connected network) Για τη διασύνδεση και επικοινωνία µεταξύ N επεξεργαστών απαιτούνται N(N-1) ακµές. Οποιοιδήποτε δύο επεξεργαστές επικοινωνούν µεταξύ τους σε ένα βήµα απαγορευτικό, όταν ο αριθμός Ν των επεξεργαστών είναι μεγάλος. Στη συνέχεια της παραγράφου, αναφέρονται διάφοροι τύποι δικτύων διασύνδεσης, των οποίων το κόστος 21

υλοποίησης και η απόδοση εμπίπτουν μεταξύ των ακραίων τιμών των δύο παραπάνω περιπτώσεων. Θα δούμε σημαντικά χαρακτηριστικά και ιδιότητες των τοπολογιών αυτών των δικτύων και θα αναφερθούμε σε παράλληλες μηχανές, οι οποίες έχουν σχεδιασθεί με βάση τα συγκεκριμένα δίκτυα διασύνδεσης. Σημαντικές παράμετροι της τοπολογίας ενός δικτύου διασύνδεσης είναι η διάμετρος (diameter), η συνεκτικότητα (connectivity) ή ο αριθμός των ακμών που πρόσκεινται σε κάθε κόμβο, και η πράξη διαμέρισης (partitioning). Η διάμετρος ενός δικτύου διασύνδεσης ορίζεται ως ο ελάχιστος αριθμός ακμών που συνδέει τους δύο πιο απομακρυσμένους μεταξύ τους κόμβους του. Είναι επιθυμητό, η διάμετρος ενός δικτύου διασύνδεσης, να είναι όσο το δυνατόν μικρότερη, διότι το μέγεθος της διαμέτρου θέτει ένα κάτω όριο στην πολυπλοκότητα των παράλληλων αλγορίθμων που απαιτούν την επικοινωνία μεταξύ οποιωνδήποτε δύο κόμβων του δικτύου. Επίσης, είναι επιθυμητό ο αριθμός των ακμών που πρόσκεινται σε κάθε κόμβο, να είναι ίσος με μία σταθερά ανεξάρτητη από το μέγεθος του δικτύου διασύνδεσης, διότι τότε, στο δίκτυο μπορούν να προστεθούν επιπλέον κόμβοι με λιγότερο κόστος. Η πράξη διαμέρισης (partitioning) είναι μία από τις πλέον σημαντικές παραμέτρους ενός δικτύου διασύνδεσης. Για να είναι ένα παράλληλο υπολογιστικό σύστημα διαμερίσιμο (partitionable) θα πρέπει: (1 ) το δίκτυο διασύνδεσης του συστήματος να μπορεί να διαμερίζεται σε υποδίκτυα, τα οποία διατηρούν την πλήρη λειτουργικότητα του αρχικού δικτύου, και (2) το παράλληλο σύστημα να μπορεί να διαμερισθεί σε ανεξάρτητα υποσυστήματα, με την έννοια ότι, κανένα υποσύστημα δεν θα πρέπει να μπορεί να επεμβαίνει στην απρόσκοπτη λειτουργία κάποιου άλλου υποσυστήματος. Τα διαμερίσιμα παράλληλα συστήματα διαθέτουν τα ακόλουθα χαρακτηριστικά: Ανοχή σφάλματος (fault tolerance): όταν κάποιος επεξεργαστής δυσλειτουργεί, δεν επηρεάζεται η λειτουργία ολόκληρου του συστήματος, αλλά μόνον εκείνες οι διαμερίσεις που περιλαμβάνουν τον συγκεκριμένο επεξεργαστή. Εντοπισμό σφάλματος (fault detection): στις εφαρμογές που απαιτεται μεγάλη αξιοπιστία, είναι δυνατό να εκτελείται το ίδιο πρόγραμμα,με τα ίδια δεδομένα, σε διαφορετικές διαμερίσεις, και να συγκρίνοντατα αποτελέσματα. 22

Ευκολότερη ανάπτυξη προγραμμάτων: η αποσφαλμάτωση (debugging) ενός προγράμματος είναι πιο εύκολη, εάν επιτελείται σε διαμερίσεις μικρού μεγέθους. Έτσι, αντί να επιχειρείται η αποσφαλμάτωση του παράλληλου προγράμματος για όλους τους επεξεργαστές τηςπαράλληλης μηχανής (π.χ. για 572 επεξεργαστές), είναι δυνατόν,αυτή να γίνεται σε μία διαμέριση μικρότερου μεγέθους (π.χ. 76 επεξεργαστών) και κατόπιν να επεκτείνεται στο σύνολο των επεξεργαστών. Πολλαπλούς ταυτόχρονους χρήστες: εφόσον έχουμε πολλαπλές ανεξάρτητες διαμερίσεις της παράλληλης μηχανής, είναι δυνατό να έχουμε πολλαπλούς ταυτόχρονους χρήστες, καθένας από τους οποίουςμπορεί να τρέχει διαφορετικό παράλληλο πρόγραμμα. Αυξημένη χρησιμοποίηση του συστήματος (increased utilization): εάν μία διεργασία χρειάζεται π.χ. μόνον Ν/4 από τους Ν διαθέσιμους επεξεργαστές, οι υπόλοιποι 3Ν/4 μπορούν να αξιοποιηθούν από μία ή περισσότερες άλλες διεργασίες. Χρήση του βέλτιστου αριθμού επεξεργαστών: πολλές φορές, χρησιμοποιώντας περισσότερους από τους απαιτούμενους επεξεργαστές,αυξάνουμε το χρόνο εκτέλεσης μιας διεργασίας ή ενός προγράμματος. Επιλέγοντας το κατάλληλο μέγεθος του υποσυστήματος που θαχρησιμοποιήσουμε, είναι δυνατό να ελαχιστοποιήσουμε το χρόνο εκτέλεσης του προγράμματος μας. Τα δίκτυα διασύνδεσης, τα οποία παρουσιάζονται στη συνέχεια, μπορούν να χωρισθούν σε δύο κατηγορίες: τα δίκτυα μοναδικού σταδίου (single stage networks) και τα δίκτυα πολλαπλού σταδίου (multiple stage networks). Στα δίκτυα μοναδικού σταδίου, οι επεξεργαστές είναι άμεσα συνδεδεμένοι με τους μεταγωγείς δικτύου και συνεπώς, κάθε κόμβος του γράφου που αναπαριστά το δίκτυο, αντιστοιχεί στον συνδυασμό ενός επεξεργαστή και ενός μεταγωγέα δικτύου. Έτσι, σε ένα τέτοιο δίκτυο, κάθε μήνυμα κατευθύνεται από έναν κόμβο-επεξεργαστή/μεταγωγέα σε έναν άλλον κόμβοεπεξεργαστή/μεταγωγέα, μέσω ενός και μοναδικού σταδίου μεταγωγής (single stage of switching). Στα δίκτυα πολλαπλού σταδίου, κάθε μήνυμα κατευθύνεται από έναν κόμβοεπεξεργαστή, μέσω περισσοτέρων του ενός σταδίων (συνήθως log 2 N) κόμβωνμεταγωγέων, σε έναν άλλον κόμβο-επεξεργαστή ή κόμβο-μονάδας μνήμης ([3]). 23

2.2.1 Δίκτυα Μοναδικού Σταδίου (single stage networks) Παρακάτω θα αναλυθούν τρεις τύποι δικτύων μοναδικού σταδίου: το δισδιάστατο πλέγμα τεσσάρων πλησιέστερων γειτόνων (four nearest-neighbor two-dimensional mesh), το δισδιάστατο πλέγμα οκτώ πλησιέστερων γειτόνων (eight nearest-neighbor twodimensional mesh), και ο υπερκύβος (hypercube). Δισδιάστατο πλέγμα τεσσάρων πλησιέστερων γειτόνων: Σε ένα δισδιάστατο τετραγωνικό πλέγμα τεσσάρων πλησιέστερων γειτόνων, οι Ν κόμβοι-επεξεργαστές είναι τοποθετημένοι στο επίπεδο σε ένα N x N πίνακα, και κάθε επεξεργαστής επικοινωνεί άμεσα, μέσω μιας ακμής, με τέσσερις γειτονικούς επεξεργαστές. Συγκεκριμένα, ο επεξεργαστής i, 0<i<Ν-1, συνδέεται με τους επεξεργαστές (i+1)modn, (i-1)modn, (i+ N)modN και (i- N)modN. Στο Σχήμα 6 απεικονίζεται ένα δισδιάστατο τετράγωνο πλέγμα τεσσάρων πλησιέστερων γειτόνων με «εξωτερικές» ακμές, όπως αυτές προκύπτουν από τον ορισμό, για Ν=16. Σχήμα 6Δισδιάστατο πλέγμα τεσσάρων γειτόνων με 16 κόμβους Η διάμετρος του δισδιάστατου τετραγωνικού πλέγματος Ν κόμβων χωρίς «εξωτερικές» ακμές είναι 2( N-1). Ένα τέτοιο πλέγμα μπορεί να διαμερισθεί σε τέσσερα υποπλέγματα Ν/4 κόμβων. Αν το Ν/4 είναι τέλειο τετράγωνο, τότε κάθε ένα από τα 24

υποπλέγματα αυτά έχει όλες τις ιδιότητες του αρχικού πλέγματος. Η διαμέριση μπορεί να γίνει κατά τον προφανή τρόπο, δηλαδή χωρίζοντας το αρχικό πλέγμα σε τέσσερα υποπλέγματα και αγνοώντας τις ακμές που συνδέουν τους εξωτερικούς κόμβους των τεσσάρων υποπλεγμάτων. Π.χ., για το πλέγμα του Σχήματος 7 τα τέσσερα υποπλέγματα αποτελούνται από τους κόμβους: 0, 1, 4, 5 το πρώτο, 2, 3, 6, 7 το δεύτερο, 8, 9, 12, 13 το τρίτο και 10, 11, 14, 15 το τέταρτο. Σχήμα 7 Παράδειγμα δρομολόγησης μηνύματος απο τον κόμβο s=9 στον t=7 Εάν το πλέγμα έχει «εξωτερικές» ακμές, όπως αυτό του Σχήματος 6, τότε δεν μπορεί να διαμερισθεί σε υποπλέγματα, τα οποία έχουν τις ίδιες ιδιότητες με αυτές του αρχικού πλέγματος.οι παράλληλοι υπολογιστές Illiac IV, ο οποίος σχεδιάσθηκε στα τέλη της δεκαετίας του 1960 στο Πανεπιστήμιο του Illinois, και Massively Parallel Processor (MPP), ο οποίος σχεδιάσθηκε από την Goodyear Aerospace για την NASA, έχουν υλοποιήσει διδιάστατα πλέγματα τεσσάρων πλησιέστερων γειτόνων. Επίσης, στο παράλληλο σύστημα Paragon XP/S της Intel χρησιμοποιείται δισδιάστατο πλέγμα τεσσάρων πλησιέστερων γειτόνων για να διασυνδεθούν πάνω από 1000 κόμβοι. Δισδιάστατο πλέγμα οκτώ πλησιέστερων γειτόνων. Σε ένα δισδιάστατο τετραγωνικό πλέγμα οκτώ πλησιέστερων γειτόνων, οι Ν κόμβοι είναι τοποθετημένοι στο επίπεδο σε ένα Ν x N πίνακα, και κάθε κόμβος επικοινωνεί άμεσα μέσω μιας ακμής με οκτώ γειτονικούς κόμβους. Συγκεκριμένα, ο κόμβος i, 0<i<N-1, συνδέεται με τους κόμβους (i+1)modn, (i-1)modn, (i+ Ν)modN, (i- N)modN, (i+ N+1)modN, (i+ N-1) 25

modn, (i- Ν+1)modN, (i- Ν-1)modN. Στο Σχήμα 8 απεικονίζεται ένα δισδιάστατο τετραγωνικό πλέγμα οκτώ πλησιέστερων γειτόνων Ν=16. Σχήμα 8 Δισδιάστατο τετραγωνικό πλέγμα οκτώ πλησιέστερων γειτόνων Ν=16 Το δίκτυο διασύνδεσης του ΜΡ-1 της MasPar αποτελεί δισδιάστατο πλέγμα οκτώ πλησιέστερων γειτόνων, όπως φαίνεται στο Σχήμα 9. Το δίκτυο καλείται Xnet, διότι σε κάθε «Χ-τομή», όπως καλείται η τομή των ακμών, υπάρχει ένας κόμβος μεταγωγής (switching node ή crosspoint switch), ο οποίος επιτρέπει την επικοινωνία κάθε επεξεργαστή με τους οκτώ πλησιέστερους γείτονες του, χρησιμοποιώντας μόνον τέσσερις θυρίδες εισόδου/εξόδου (I/O ports). Προκειμένου να αποσταλεί ένα μήνυμα από τον επεξεργαστή i στον επεξεργαστή i+1, ο επεξεργαστής i μεταβιβάζει δεδομένα στην πάνω δεξιά του θυρίδα και ο i+1 διαβάζει από την πάνω αριστερά του θυρίδα. Με παρόμοιο τρόπο επικοινωνούν μεταξύ τους και τα υπόλοιπα ζεύγη επεξεργαστών. Σχήμα 9 Το X-net δίκτυο του ΜΡ-1 για Ν=16 επεξεργαστές 26

Υπερκύβος (hypercube). Στην τοπολογία του υπερκύβου ο αριθμός Ν των κόμβων είναι πάντα δύναμη του 2 (Ν=2 n ). Εάν ο αριθμός των κόμβων είναι 2 n, τότε ο αριθμός η είναι η διάσταση του υπερκύβου. (Για n=3 έχουμε τον κύβο τριών διαστάσεων του Σχήματος 10). Κάθε κόμβος έχει έναν κωδικό αριθμό, του οποίου η δυαδική αναπαράσταση αποτελείται από n bits. Κάθε διάσταση αντιστοιχεί σε μια θέση bit των αριθμών των κόμβων. Στον υπερκύβο υπάρχουν ακμές μεταξύ ζευγών κόμβων, των οποίων οι δυαδικές αναπαραστάσεις των κωδικών αριθμών τους διαφέρουν σε ένα και μόνον bit. Μία ακμή, η οποία συνδέει κόμβους που διαφέρουν στο i-οστό bit, καλείται ακμή διάστασης i. Για παράδειγμα, στο Σχήμα 10, η ακμή η οποία συνδέει τον κόμβο 010 και τον κόμβο 011 είναι ακμή μηδενικής διάστασης, διότι συνδέει κόμβους οι οποίοι διαφέρουν στη διάσταση μηδέν. Σχήμα 10 Κύβος διάστασης 3 Ένας κύβος διάστασης i, κατασκευάζεται αναδρομικά ως εξής ( Σχήμα 11 ): Θεωρούμε δύο υπερκύβους διάστασης i-1 με αριθμημένους τους κόμβους τους. Προσθέτουμε ακμές μεταξύ των επεξεργαστών στους δύο υπερκύβους διάστασης i-1, που έχουν τους ίδιους κωδικούς αριθμούς. Προσθέτουμε ως το πιο σημαντικό bit, στους μεν αριθμούς του ενός υπερκύβου διάστασης i-1 το 0, στους δε αριθμούς του άλλου υπερκύβου διάστασης i-1 το 1. 27

Σχήμα 11 Kατασκευή υπερκύβου διάστασης 4 από δύο κύβους διάστασης 3 Η ελάχιστη απόσταση μεταξύ δύο κόμβων ενός υπερκύβου, ήτοι το μήκος του μικρότερου μονοπατιού μεταξύ των δύο αυτών κόμβων, ισούται με τον αριθμό των bits, στα οποία διαφέρουν οι κωδικοί αριθμοί των κόμβων αυτών. Η απόσταση αυτή καλείται απόσταση Hamming. Η διάμετρος ενός υπερκύβου διάστασης n ισούται με n. Ένας υπερκύβος διάστασης n με 2 n =Ν κόμβους, μπορεί να διαμερισθεί σε δυο ανεξάρτητους υπερκύβους διάστασης n-1, κάθε ένας από τους οποίους έχει Ν/2 κόμβους και όλες τις ιδιότητες ενός υπερκύβου διάστασης n-1. Στην πραγματικότητα, υπάρχουν n τρόποι διαμέρισης ενός υπερκύβου διάστασης n σε δύο υπερκύβους διάστασης n-1, διότι υπάρχουν η διαφορετικές διαστάσεις ως προς τις οποίες μπορεί να εμποδισθεί η επικοινωνία, απαγορεύοντας κάθε φορά τη χρήση των ακμών κάθε μιας από αυτές τις διαστάσεις. Κάθε ένας από τους υπερκύβους διάστασης n-1, μπορεί και αυτός να διαμερισθεί σε δύο ανεξάρτητους υπερκύβους διάστασης n-2, κ.ο.κ. Το παράλληλο σύστημα ncube/3 της ncube, χρησιμοποιεί τοπολογία υπερκύβου για τη διασύνδεση των επεξεργαστών του. Το σύστημα ncube/3 είναι διάδοχος των συστημάτων ncube/1 και ncube/2, τα οποία, επίσης χρησιμοποιούσαν τοπολογία υπερκύβου ([3]) 2.2.2 Δίκτυα Πολλαπλού Σταδίου (multiple stage networks) Θα εξετάσουμε τους εξής τύπους δικτύων πολλαπλού σταδίου: τον κύβο πολλαπλού σταδίου (multistage cube), τον κύβο επιπλέον σταδίου (extra stage cube) και τα δίκτυα δένδρου (tree networks). 28

Κύβος πολλαπλού σταδίου. Δίκτυα με τοπολογία ισοδύναμη με αυτήν του κύβου πολλαπλού σταδίου υπάρχουν πολλά και με διάφορα ονόματα. Ενδεικτικά, είναι το δίκτυο πεταλούδας (butterfly network), το δίκτυο ανάμιξης-ανταλλαγής (shuffleexchange network), τον γενικευμένο κύβο (generalized cube), το baseline και το oméga. H τοπολογία του γενικευμένου κύβου συχνά χρησιμοποιείται ως πρότυπο (standard) για τη σύγκριση διαφόρων τύπων δικτύων κύβου πολλαπλού σταδίου. Στο Σχήμα 12 φαίνεται η τοπολογία γενικευμένου κύβου Ν εισόδων και Ν εξόδων για Ν=8 Σχήμα 12 Τοπολογία γενικευμένου κύβου για Ν=8 Ένα τέτοιο δίκτυο έχει n=iog2n στάδια αριθμημένα από το 0 έως το Ν-1, και κάθε στάδιο αποτελείται από Ν ακμές, αριθμημένες επίσης, από το 0 έως το Ν-1, οι οποίες συνδέονται σε Ν/2 κουτιά εναλλαγής (interchange boxes). Κάθε κουτί εναλλαγής είναι ένας μεταγωγέας δύο εισόδων και δύο εξόδων, ο οποίος μπορεί να τεθεί σε μία από τις τέσσερις καταστάσεις, που φαίνονται στο Σχήμα 13 29

Σχήμα 13 Καταστάσεις μεταγωγέων Όταν ένας μεταγωγέας τίθεται στην κατάσταση «ευθεία», τότε τα σήματα εισόδου μεταδίδονται στις αντίστοιχες εξόδους, ενώ όταν τίθεται στην κατάσταση «ανταλλαγή», τότε στις εξόδους γίνεται ανταλλαγή των εισόδων Τέλος, όταν ένας μεταγωγέας τίθεται στην κατάσταση «κατώτερη μετάδοση» (αντίστοιχα, «ανώτερη μετάδοση»), στις δύο εξόδους μεταδίδεται η κάτω είσοδος (αντίστοιχα, πάνω είσοδος). Σε κάθε στάδιο i, οι αριθμοί των δύο ακμών που αποτελούν τις δύο εισόδους (αλλά και τις δύο εξόδους) σε κάθε κουτί εναλλαγής, διαφέρουν μόνο στο i-οστό bit τους. Οι Ν είσοδοι και οι Ν έξοδοι του δικτύου είναι στην πραγματικότητα οι Ν επεξεργαστές, τους οποίους διασυνδέει το δίκτυο. Στη συνέχεια, χρησιμοποιούμε τον όρο κύβος πολλαπλού σταδίου μεγέθους Ν, για ένα δίκτυο με τοπολογία γενικευμένου κύβου (Σχήμα 12) και κουτιά εναλλαγής (μεταγωγείς), όπως αυτά περιγράφονται στο Σχήμα 13. Προκειμένου να προσδιορισθεί ένα μονοπάτι από μία είσοδο (επεξεργαστή)-αφετηρία s, με δυαδική αναπαράσταση s n-1,s n-2...s 1, s 0, σε μία έξοδο(επεξεργαστή)-προορισμό t, με δυαδική αναπαράσταση t n-1 t n-2...t 1 t 0, ο μεταγωγέας του σταδίου i τίθεται στην κατάσταση «ευθεία», όταν s i =t i, ενώ τίθεται στην κατάσταση «ανταλλαγή» όταν s i, t i,. Για παράδειγμα, αν s=001 και t=100, τότε οι τρεις μεταγωγείς από την είσοδο προς την έξοδο, τίθενται αντίστοιχα στις καταστάσεις «ανταλλαγή», «ευθεία» και «ανταλλαγή» (Σχήμα 14). Οι αριθμοί των ακμών από τις οποίες διέρχεται ένα μήνυμα που ξεκινάει από τον κόμβο s και φθάνει στον κόμβο t, προσδιορίζονται ως εξής: Η πρώτη ακμή (πριν το στάδιο n-1) είναι η ακμή s n-1 s n-2.s 1 s 0, η ακμή μετά το στάδιο n-1 είναι η t n-1 s n-2 s 1 s 0., η ακμή μετά το στάδιο n-2 είναι t n-1 t n-2 s n-3 s 1 s 0, η ακμή μετά το στάδιο 1 είναι η t n-1 t n-2 t n-3 t 1 s 0 και η ακμή μετά το στάδιο 0 είναι η t n-1 t n-2 t 1 t 0. Γενικά, η ακμή του μονοπατιού 30

από το s στο t, μετά το στάδιο i, είναι η t n-1 t n-2 t i s i-1 s 1 s 0. Για παράδειγμα, οι ακμές του μονοπατιού του Σχήματος 14, από τον κόμβο 001, στον κόμβο 100 είναι οι εξής: 001, 101, 101 και 100. Είναι εύκολο να παρατηρήσουμε ότι, σε ένα δίκτυο κύβου πολλαπλού σταδίου, δοθέντος ενός ζεύγους επεξεργαστών, υπάρχει ένα και μόνον ένα μονοπάτι, το οποίο διασυνδέει τους επεξεργαστές αυτούς. Αυτή η ιδιότητα του «μοναδικού μονοπατιού» περιορίζει την ικανότητα της ανοχής σφάλματος (fault tolerance) του δικτύου. Συγκεκριμένα, αν ένας μεταγωγέας ή μία ακμή δυσλειτουργεί, τότε κάποια ζεύγη επεξεργαστών δεν μπορούν να επικοινωνήσουν. Το δίκτυο κύβου επιπλέον σταδίου (extra stage cube), το οποίο μελετάται στη συνέχεια, αποτελεί μία παραλλαγή του κύβου πολλαπλού σταδίου, που αντιμετωπίζει το πρόβλημα του «μοναδικού μονοπατιού», και συνεπώς της ανοχής σφάλματος Σχήμα 14 Το μονοπάτι από τον κόμβο s=001 στον κόμβο t=100 σε ένα δίκτυο κύβου πολλαπλού σταδίου μεγέθους Ν=8 Όταν στο μονοπάτι, που συνδέει μία είσοδο με κάποιες εξόδους, χρησιμοποιούνται μεταγωγείς, οι οποίοι τίθενται στις καταστάσεις «κατώτερη μετάδοση» (lower broadcast) ή/και «ανώτερη μετάδοση» (upper broadcast), τότε δημιουργείται σύνδεση πολλαπλής (multicasting) (ή με άλλα λόγια, σύνδεση της μορφής «ένας-προς-πολλούς») μεταξύ των επεξεργαστών. Ένα τέτοιο μονοπάτι πολλαπλής εκπομπής φαίνεται στο Σχήμα 15. 31

Ο έλεγχος της δρομολόγησης μηνυμάτων κατανέμεται στο δίκτυο με τη χρήση μιας ετικέτας δρομολόγησης (routing tag), η οποία αποτελεί την επικεφαλίδα του μηνύματος και αποστέλλεται από τον κόμβο-αφετηρία. Για μια «ένας-προς-ένα» σύνδεση μεταξύ δύο επεξεργαστών, η ετικέτα δρομολόγησης d=d n-1 d n-2...d 1 d 0 υπολογίζεται στον κόμβοαφετηρία s ως το αποκλειστικό του αριθμού του s= s n-1 s n-2 s 1 s 0 και του αριθμού του κόμβου-προορισμού t=t n-1 t n-2...t 1 t 0. Όταν ένας μεταγωγέας του σταδίου i παραλαμβάνει ένα μήνυμα, εξετάζει το bit di της ετικέτας δρομολόγησης. Αν d=0, τότε ο μεταγωγέας τίθεται στην κατάσταση «ευθεία», ενώ αν d i =1, τότε ο μεταγωγέας τίθεται στην κατάσταση «ανταλλαγή». Στο παράδειγμα του Σχήματος 15, η ετικέτα δρομολόγησης d ισούται με 101. Στην περίπτωση μιας «ένας-προς-πολλούς» σύνδεσης μεταξύ πολλών κόμβων, χρησιμοποιείται η ετικέτα δρομολόγησης πολλαπλής εκπομπής (multicast routing tag), η οποία αποτελείται από μία μάσκα πολλαπλής εκπομπής (multicast mask) με n bits και από την κανονική ετικέτα δρομολόγησης. Σχήμα 15 Μονοπάτι πολλαπλής εκπομπής από την είσοδο s=011 στις εξόδους 000, 0001, 010 και 011 σε ένα δίκτυο κύβου πολλαπλού σταδίου για Ν=8 Η διαδικασία διαμέρισης ενός κύβου πολλαπλού σταδίου είναι παρόμοια με τη διαδικασία διαμέρισης ενός υπερκύβου. Συγκεκριμένα, υπάρχουν n τρόποι διαμέρισης ενός κύβου πολλαπλού σταδίου μεγέθους Ν, σε δύο ανεξάρτητα υποδίκτυα μεγέθους Ν/2. Ένας τρόπος διαμέρισης είναι να τεθούν όλοι οι μεταγωγείς του σταδίου n-1 στην κατάσταση «ευθεία». Έτσι, σχηματίζονται δύο υποδίκτυα: το ένα με κόμβους εισόδου 32

και εξόδου αριθμημένους από το 0 έως το Ν/2-1, και το άλλο με κόμβους εισόδου και εξόδου αριθμημένους από το Ν/2 έως Ν-1 Παράλληλοι υπολογιστές, οι οποίοι χρησιμοποιούν κάποια μορφή τοπολογίας δικτύου κύβου πολλαπλού σταδίου, είναι οι εξής: O NYU Ultracomputer, o οποίος σχεδιάσθηκε στο Πανεπιστήμιο της Ν. Υόρκης το 1983, Research Parallel Processor Prototype (RP3), o οποίος κατασκευάσθηκε από την IBM το 1983, o GP1000 της ΒΒΝ Advanced Computer, o οποίος κατασκευάσθηκε το 1985, ο Cedar, ο οποίος κατακευάσθηκε το 1985 στο Πανεπιστήμιο του Illinois, και o TC2000 της ΒΒΝ, ο οποίος κατασκευάσθηκε το 1989 Κύβος επιπλέον σταδίου. Όπως αναφέρθηκε προηγουμένως, στον κύβο πολλαπλού σταδίου, από κάθε κόμβο-αφετηρία υπάρχει ένα και μοναδικό μονοπάτι προς κάθε κόμβο-προορισμό, με αποτέλεσμα, όταν κάποιος κόμβος-μεταγωγέας ή κάποια ακμή δυσλειτουργεί, να μην υπάρχει επικοινωνία μεταξύ κάποιων επεξεργαστών. Ο κύβος επιπλέον σταδίου σχηματίζεται, όταν προσθέσουμε στον κύβο πολλαπλού σταδίου, ένα επιπλέον στάδιο στην είσοδο (το οποίο είναι το στάδιο n), και επιπλέον υλικό (hardware), για να επιτρέπεται, όταν αυτό είναι επιθυμητό, η απενεργοποίηση του νέου σταδίου εισόδου (στάδιο n) ή του σταδίου εξόδου (στάδιο 0). Οι αριθμοί των ακμών, που αποτελούν τις δύο εισόδους αλλά και τις δύο εξόδους σε κάθε μεταγωγέα του σταδίου n, διαφέρουν μόνο στο μηδενικό bit (bit 0), όπως φαίνεται και στο Σχήμα 16 Σχήμα 16 Κύβος πιπλέον σταδιου μεγέθους Ν=8 (τα γκρίζα ορθογώνια είναι οι μεταγωγείς και τα λευκά οι πολυπλέκτες 33

Προκειμένου τα στάδια n και 0 να μπορούν να απενεργοποιηθούν, δίπλα στους μεταγωγείς των σταδίων αυτών, προστίθεται υλικό (hardware), το οποίο αποτελείται από δυϊκές θυρίδες εισόδου/εξόδου (dual input/output ports), δύο πολυπλέκτες (multiplexors) στην περίπτωση του σταδίου n, και δύο αποπολυπλεκτες (demultiplexers) στην περίπτωση του σταδίου 0. Σχήμα 17 (α) Μεταγωγέας του σταδίου n (γκρίζο ορθογώνιο) μαζί με τους δύο πολυπλέκτες (λευκά ορθογώνια) (β) Μεταγωγέας του σαδίου 0 (γκρίζο ορθογώνιο) μαζί με τους δύο αποπολυπλέκτες (λευκά ορθογώνια) Το στάδιο n απενεργοποιείται, επιλέγοντας δεδομένα (με τη βοήθεια των πολυπλεκτών) από εκείνη την πύλη εισόδου, η οποία δεν δρομολογεί τα δεδομένα διαμέσου των μεταγωγέων. Το στάδιο 0 απενεργοποιείται, όταν οι αποπολυπλέκτες δρομολογούν τα δεδομένα, όχι διαμέσου των μεταγωγέων του σταδίου 0, αλλά στις εναλλακτικές πύλες εξόδου, που έχουν προστεθεί δίπλα στους μεταγωγείς του σταδίου 0 (Σχήμα 18). Αν τα στάδια n και 0 δεν έχουν απενεργοποιηθεί, τότε θεωρούνται ενεργοποιημένα και τα μηνύματα περνούν διαμέσου των μεταγωγέων των σταδίων αυτών. Μία μονάδα ελέγχου ή ένας επεξεργαστής του συστήματος αναλαμβάνει την ενεργοποίηση/απενεργοποίηση των σταδίων n και 0. Όταν το σύστημα λειτουργεί κανονικά και δεν έχει διαπιστωθεί δυσλειτουργία κάποιου μέρους του, τότε το στάδιο η είναι απενεργοποιημένο, ενώ το στάδιο Ο είναι ενεργοποιημένο. Στην περίπτωση αυτή, η τοπολογία του κύβου επιπλέον σταδίου ταυτίζεται με αυτήν του κύβου πολλαπλού σταδίου 34

Σχήμα 18 (α) Το στάδιο n ενεργοποιημένο (β) Το στάδιο 0 ενεργοποιημένο (γ) Το στάδιο n απενεργοποιημένο (δ) Τοστάδιο 0 απενεργοποιημένο Η τοπολογία του κύβου επιπλέον σταδίου, σε αντίθεση με αυτήν του κύβου πολλαπλού σταδίου, επιτρέπει την κανονική λειτουργία του δικτύου (και επομένως, τη δυνατότητα επικοινωνίας μεταξύ οποιωνδήποτε δύο επεξεργαστών), ακόμη και όταν ένας μεταγωγέας, ή μία ακμή, ή μία πύλη εισόδου ή εξόδου δυσλειτουργεί. Έστω ότι, μία ακμή ή ένας μεταγωγέας του σταδίου i, 0<i<n, δυσλειτουργεί. Τότε, τα στάδια n και 0 ενεργοποιούνται, και έτσι, για οποιονδήποτε κόμβο-αφετηρία, το στάδιο n-1 έχει δύο ακμές-εισόδους, οι οποίες διαφέρουν μόνο στο μηδενικό bit. Τα δύο μονοπάτια, τα οποία ξεκινούν από αυτές τις ακμές, συναντιώνται μόνο στο μεταγωγέα του σταδίου 0, εφόσον τα στάδια n-1 έως 0 αποτελούν έναν κύβο πολλαπλού σταδίου. Επομένως, ακόμη και όταν μία ακμή ή ένας μεταγωγέας κάποιου σταδίου i, 0<i<n, δυσλειτουργεί, για οποιοδήποτε ζεύγος αφετηρίας - προορισμού, ένα από τα δύο μονοπάτια θα λειτουργούν. Η δρομολόγηση ενός μηνύματος από έναν κόμβο-αφετηρία s σε έναν κόμβοπροορισμό t, γίνεται με τη βοήθεια της ετικέτας δρομολόγησης d=d n-1 d n-2 d 1 d 0 ως εξής: Τα bits d n-1. έως και d 1, υπολογίζονται όπως και στην περίπτωση του κύβου πολλαπλού σταδίου, δηλαδή ως το αποκλειστικό-ή των αντίστοιχων bits των s και t. Εάν δεν υπάρχει ακμή ή μεταγωγέας που δυσλειτουργεί σε κάποιο από τα στάδια n-1 έως 1 στο μονοπάτι από το s στο t, τότε ο μεταγωγέας του σταδίου n, για αυτό το μονοπάτι, τίθεται στην κατάσταση «ευθεία», ορίζοντας το bit d n ίσο με το 0. Αν, αντίθετα, υπάρχει κάποια ακμή ή μεταγωγέας που δυσλειτουργεί σε κάποιο από τα στάδια n-1 έως 1 στο προηγούμενο μονοπάτι, τότε ο μεταγωγέας του σταδίου n τίθεται στην κατάσταση «ανταλλαγή», 35

ορίζοντας το bit d n ίσο με 1. Στην περίπτωση αυτή, το bit d d 0 ορίζεται ως ίσο με το αποκλειστικό-ή των bits s o και t 0. Σχήμα 19 Τα δυο μονοπάτια, από τον κόμβο s=010 στον κόμβο t=101, σε ένα δίκτυο κύβου επιπλέον σταδίου μεγέθους Ν=8 Εάν ένας μεταγωγέας του σταδίου n ή του σταδίου 0 δυσλειτουργεί, τότε απενεργοποιείται το στάδιο στο οποίο ανήκει ο μεταγωγέας που δυσλειτουργεί. Έτσι, όταν δυσλειτουργεί ένας μεταγωγέας του σταδίου n, τότε το στάδιο n απενεργοποιείται, ενώ ενεργοποιείται το στάδιο 0 (Σχήμα 20). To bit d i, 0 i n-1, της ετικέτας δρομολόγησης d ορίζεται ως το αποκλειστικό-ή των αντίστοιχων bits s i και t i 0 i n-1, ενώ η θέση του bit d n μένει κενή (διότι, στο στάδιο n, δεν εξετάζεται η ετικέτα δρομολόγησης, αφού το στάδιο αυτό είναι απενεργοποιημένο). Παρομοίως, όταν κάποιος μεταγωγέας του σταδίου 0 δυσλειτουργεί, τότε το στάδιο 0 απενεργοποιείται, και ενεργοποιείται το στάδιο n. To bit d i 1 i n-1, της ετικέτας δρομολόγησης d, ορίζεται ως το αποκλειστικό-ή των αντίστοιχων bits s i, και t i, όπου, 36

1 i n-1, το bit d n ορίζεται ως αποκλειστικό-ή των bits s 0 και t 0, και η θέση του bit d 0 μένει κενή, αφού το στάδιο 0 είναι απενεργοποιημένο. Με αυτόν τον τρόπο, το στάδιο n λειτουργεί με τον ίδιο τρόπο, με τον οποίο επρόκειτο να λειτουργήσει το στάδιο 0 (Σχήμα 21). Η δυσλειτουργία ενός πολυπλέκτη του σταδίου n ή ενός αποπολυπλέκτη του σταδίου 0 θεωρείται ως δυσλειτουργία ακμής και μπορεί να αντιμετωπισθεί Σχήμα 20 Το μονοπάτι, από τον κόμβο s=010 στον κόμβο t=101, σε ένα δίκτυο κύβου επιπλέον σταδίου, μεγέθους Ν=8, με απενεργοποιημένο το στάδιο 3 Η διαμέριση ενός κύβου επιπλέον σταδίου γίνεται κατά παρόμοιον τρόπο με αυτόν της διαμέρισης ενός κύβου πολλαπλού σταδίου. Θα πρέπει να είναι κατανοητό, ότι στα υποδίκτυα στα οποία διαμερίζεται ένας κύβος επιπλέον σταδίου, θα πρέπει να υπάρχουν τα στάδια n και 0, διότι διαφορετικά, δεν ισχύει η ιδιότητα της ύπαρξης ενός μονοπατιού μεταξύ οποιωνδήποτε δύο κόμβων, ακόμη και όταν υπάρχει δυσλειτουργία ενός μεταγωγέα ή μιας ακμής του δικτύου. Το παράλληλο σύστημα PASM, το οποίο σε μορφή πρωτοτύπου με 30 επεξεργαστές κατασκευάσθηκε και λειτουργεί στο Πανεπιστήμιο Purdue, βασίζεται στην τοπολογία κύβου με ένα επιπλέον στάδιο 37

Σχήμα 21 Το μονοπάτι, απο τον κόμβο s=010 στον κόμβο t=101, σε έναν κόμβο επιπλέον σταδίου, μεγέθους Ν=8, με απενεργοποιημένο το στάδιο 0 Δίκτυα Δένδρου. Η τοπολογία των δικτύων δένδρου έχει δομή δένδρου, του οποίου τα φύλλα αντιπροσωπεύουν επεξεργαστές και οι εσωτερικοί κόμβοι αντιπροσωπεύουν μεταγωγείς. Στη συνέχεια, θα εξετάσουμε τα δίκτυα δυαδικού δένδρου (binary tree networks) και τα δίκτυα υπερδένδρου (hypertree networks) Δίκτυα δυαδικού δένδρου (binary tree networks). Η τοπολογία ενός δικτύου δυαδικού δένδρου με Ν=2 n κόμβους-επεξεργαστές έχει τη μορφή πλήρους δυαδικού δένδρου (complete binary tree) βάθους n. Κάθε εσωτερικός κόμβος-μεταγωγέας ν έχει τρεις πύλες εισόδου/εξόδου. Η μία είναι συνδεδεμένη με τον πατέρα του κόμβου ν ενώ οι δυο άλλες με τα δύο παιδιά του ν. (Σχήμα 22). Σχήμα 22 Δίκτυου δυαδικού δένδρου, για Ν=8 38