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



Σχετικά έγγραφα
Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Ψευδοκώδικας. November 7, 2011

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Πληροφορική 2. Αλγόριθμοι

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

Στοχαστικές Στρατηγικές. διαδρομής (1)

8. Παράλληλη εκτέλεση βρόχων

Εισαγωγή στην επανάληψη

Κεφάλαιο 2: Διανυσματικός λογισμός συστήματα αναφοράς

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

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

ΘΕΜΑ 1: Αλγόριθμος Ford-Fulkerson

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Ενότητα 2: Εντολές Επανάληψης

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ

Οδηγίες σχεδίασης στο περιβάλλον Blender

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

Εισαγωγή στην επανάληψη

Γραφικά με Η/Υ Αλγόριθμοι σχεδίασης βασικών 22D D σχημάτων (ευθεία

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

1 Η εναλλάσσουσα ομάδα

5. (Λειτουργικά) Δομικά Διαγράμματα

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

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ. Κεφάλαιο 3

Ψευδογλώσσας και Διαγράμματα Ροής

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

Μεθοδολογία Επίλυσης Προβλημάτων ============================================================================ Π. Κυράνας - Κ.

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

3 ο Εργαστήριο Μεταβλητές, Τελεστές

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Να περιγραφεί η δομή επανάληψης Αρχή_επανάληψης Μέχρις_ότου

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

αντίστοιχο γεγονός. Όταν όντως το κουμπί

z 1 E(G) 2(k 1) = 2k 3. x z 2 H 1 H 2

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Παρατηρήσεις για την δομή Όσο..επανάλαβε( ΣΟΣ)

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Αυτόνομοι Πράκτορες. ΝΑΟ Μουσικός

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

Θέματα Προγραμματισμού Η/Υ

Μαθηματική Εισαγωγή Συναρτήσεις

Εύρεση ν-στού πρώτου αριθμού

Σήματα και Συστήματα. Διάλεξη 1: Σήματα Συνεχούς Χρόνου. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

E(G) 2(k 1) = 2k 3.

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

Άθροισμα τριών ποσοτήτων (1/2)

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

Υπολογιστικά & Διακριτά Μαθηματικά

Μαθηματική Εισαγωγή Συναρτήσεις

Ασκήσεις μελέτης της 19 ης διάλεξης

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Επαναληπτικές Διαδικασίες

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

Ενότητα 1: Απλές εντολές γραφικών

bca = e. H 1j = G 2 H 5j = {f G j : f(0) = 1}

ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΕΣΠΕΡΙΝΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 5 ΙΟΥΛΙΟΥ ΑΕΠΠ

Αριθμητική Ανάλυση & Εφαρμογές

ΔΕΙΓΜΑ ΠΡΙΝ ΤΙΣ ΔΙΟΡΘΩΣΕΙΣ - ΕΚΔΟΣΕΙΣ ΚΡΙΤΙΚΗ

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

7 ο Εργαστήριο Θόρυβος 2Δ, Μετακίνηση, Περιστροφή

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

d dx ΠΑΡΑΓΩΓΟΣ ΣΥΝΑΡΤΗΣΗΣ

Κεφάλαιο 4. Λογική Σχεδίαση

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

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής

Δρίμτζιας Βασίλειος MSc, Καθηγητής Πληροφορικής ΠΕ19, 1ο Γενικό Λύκειο Ηγουμενίτσας

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες

Κεφάλαιο 4 : Λογική και Κυκλώματα

Σεµινάριο Αυτοµάτου Ελέγχου

Μεθοδολογικός σχεδιασμός πνευματικού αυτοματισμού με έμβολα

Γραμμικός Προγραμματισμός Μέθοδος Simplex

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

Το κείμενο που ακολουθεί αποτελεί επεξεργασία του πρωτότυπου κειμένου του Α. Κάστωρ για την επίλυση των παραδειγμάτων κρίσιμης αλυσίδας που

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο

Πράξεις με πραγματικούς αριθμούς (επαναλήψεις - συμπληρώσεις )

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη;

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

Στοχαστικές Στρατηγικές

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ

Οδηγίες για το CABRI - GEOMETRY II Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας

Σχετική κίνηση αντικειμένων

4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ :

ΚΕΦΑΛΑΙΑ & 8.2 (ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ) ΘΕΩΡΙΑ

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

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

Transcript:

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε ένα κεντρικό υπολογιστή και εκτελούν κάποιες πολύ συγκεκριμένες εργασίες κατά τον βέλτιστο παράλληλο τρόπο. Οι εργασίες που εκτελούνται συνήθως από τους συστολικούς επεξεργαστές είναι μαθηματικές ρουτίνες οι οποίες είναι επαναληπτικές, ομοιόμορφες και ο κώδικάς τους δεν περιέχει εντολές αλμάτων (umps). Το παρακάτω σχήμα δείχνει μια τυπική αρχιτεκτονική μιας συστοιχίας επεξεργαστών. Υπολογιστής υποδοχής (Host) CU Η συστοιχία επικοινωνεί με τον υπολογιστή που την φιλοξενεί (host machne) μέσω μιας μονάδας ελέγχου (Control Unt - CU) η οποία δέχεται εντολές και δίνει ή παίρνει δεδομένα προς και από τον host. Τα βασικά χαρακτηριστικά μιας συστοιχίας είναι τα εξής 1. Υπάρχει απλός έλεγχος ροής του προγράμματος (δεν υπάρχουν umps) 2. Δεν έχει λειτουργικό σύστημα. Ο υπολογιστής host είναι υπεύθυνος για την λειτουργία της συστοιχίας, για την τροφοδοσία της με δεδομένα, κλπ. 3. Εκτελεί περιορισμένο αριθμό αλγορίθμων και είναι κατάλληλα προσαρμοσμένη για να έχει βέλτιστη παράλληλη απόδοση σε αυτούς κάνοντας μέγιστη εκμετάλλευση της παραλληλισιμότητας τους. 4. Συνήθως η συστοιχία αποτελείται από ειδικά σχεδιασμένα chps τα οποία κάνουν μέγιστη εκμετάλλευση της δομής του αλγορίθμου που είναι ο στόχος. Σπανιότερα οι αποτελούνται από επεξεργαστές γενικού σκοπού όπως SP (gtal Sgnal Processors). 5. Το κόστος είναι συνήθως μεγάλο. 6. Κάθε επεξεργαστής εκτελεί την ίδια εντολή σε διαφορετικά δεδομένα (μοντέλο SIM).

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 209 9.1 Μεθοδολογία απεικόνισης ενός αλγορίθμου σε συστολική συστοιχία. Σαν εκπαιδευτικό παράδειγμα θα χρησιμοποιήσουμε τον αλγόριθμο πολλαπλασιασμού πίνακα επί διάνυσμα. Έστω A[][] ο πίνακας και B[] το διάνυσμα εισόδου (δεδομένα) και C[] το διάνυσμα εξόδου (αποτέλεσμα) του αλγορίθμου. Ο αλγόριθμος σε ψευδοκώδικα γράφεται ως εξής: for (=1 to m) { C[] = 0 for (=1 to n) { C[] = C[] + A[][] * B[] Η μεθοδολογία απεικόνισης αποτελείται από τα εξής 5 βήματα: 1. Μετατροπή του κώδικα σε κώδικα μοναδικής ανάθεσης 2. Σχεδιασμός Γράφου Εξάρτησης (ΓΕ) 3. Μετατροπή μακρινών συνδέσεων σε τοπικές 4. Προβολή, χρονοδιάγραμμα 5. Σχεδιασμός συστολικού επεξεργαστή Τα βήματα αυτά περιγράφονται αναλυτικά παρακάτω χρησιμοποιώντας το παράδειγμα πολλαπλασιασμού πίνακα επί διάνυσμα. 9.1.1 Βήμα 1: Μετατροπή του κώδικα σε κώδικα μοναδικής ανάθεσης Γράφουμε ξανά τον κώδικα έτσι ώστε σε κάθε μεταβλητή να γίνεται ανάθεση το πολύ μια μόνο φορά (sngle-assgnment code). Στον παραπάνω κώδικα στη μεταβλητή C[], για οποιοδήποτε, ανατίθεται n+1 φορές (έχουμε μια ανάθεση έξω από το -loop και n αναθέσεις μέσα στο -loop). Για κάθε μια ανάθεση θα χρησιμοποιήσουμε και μια ξεχωριστή μεταβλητή C[][], οπότε έχουμε for (=1 to m) { C[][1] = 0 for (=1 to n) { C[][+1] = C[][] + A[][] * B[]

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 210 9.1.2 Βήμα 2: Σχεδιασμός Γράφου Εξάρτησης (ΓΕ) Σχεδιάζουμε το Γράφο Εξάρτησης (ependence graph) του αλγορίθμου. Ο γράφος αυτός είναι ένα πλέγμα τόσων διαστάσεων όσοι και οι βρόχοι οι οποίοι είναι φωλιασμένοι ο ένας μέσα στον άλλο. Στο συγκεκριμένο παράδειγμα έχουμε 2 βρόχους (ένα βρόχο για και ένα βρόχο για ) και άρα ο Γράφος Εξάρτησης είναι 2 διαστάσεων. Για το συγκεκριμένο αλγόριθμο ο γράφος εξάρτησης είναι ο παρακάτω: Β[4] 4 Β[3] 3 Β[2] 2 Β[1] 1 0 0 0 0 1 2 3 4 Σχήμα 62. Ο Γράφος Εξάρτησης του αλγόριθμου του πολλαπλασιασμού πίνακα επί διάνυσμα. (Υποθέτουμε για απλούστευση ότι ο πίνακας έχει διάσταση 4 4 και άρα τα διανύσματα εισόδου και εξόδου έχουν διάσταση 4). O Γράφος Εξάρτησης αποτελείται από κόμβους που αντιστοιχούν σε πράξεις και από ακμές που αντιστοιχούν σε λογικές εξαρτήσεις μεταξύ των πράξεων. Έτσι για παράδειγμα ο κόμβος που βρίσκεται στο πλέγμα στη θέση <=2,=3> αντιστοιχεί στην πράξη που γίνεται στον αλγόριθμο μέσα στο εσωτερικό loop για =2 και =3. Μια ματιά στον κώδικα μας επιβεβαιώνει ότι η πράξη αυτή είναι η C[2][4] = C[2][3] + A[2][3]*B[3]

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 211 η οποία χρησιμοποιεί σαν είσοδο τις τιμές C[2][3], A[2][3], B[3] και δίνει σαν έξοδο την τιμή C[2][4]. Γενικά, ο κόμβος <,> εκτελεί τις πράξεις C[][+1] = C[][] + A[][]*B[] Οι είσοδοι του κόμβου είναι οι τιμές που εμφανίζονται στα δεξιά της ανάθεσης (=) δηλαδή οι τιμές C[][], A[][], B[] και η έξοδος του κόμβου είναι η τιμή στα αριστερά της ανάθεσης δηλαδή C[][+1]. Το σχεδιάγραμμα των εισόδων και εξόδων του κόμβου <,> φαίνεται στο παρακάτω Σχήμα: C[][+1] Κόμβος <,> A[][] C[][] B[] Κάθε κόμβος του γράφου εκτελεί κάποιες πράξεις οι οποίες περιγράφονται στο ακόλουθο σχεδιάγραμμα C[][+1] B[] B[] A[][] C[][] Από τον ορισμό του αλγορίθμου βλέπουμε ότι για να εκτελεστεί ο κόμβος <,+1> χρησιμοποιείται η τιμή C[][+1] η οποία προέρχεται από τον υπολογισμό του κόμβου <,>. Έτσι λέμε ότι υπάρχει μια εξάρτηση μεταξύ του κόμβου <,+1> και του κόμβου <,> την οποία συμβολίζουμε με μια κατευθυνόμενη ακμή από τον δεύτερο κόμβο προς τον πρώτο. (Ο δεύτερος κόμβος είναι ο «παραγωγός» του δεδομένου και ο πρώτος είναι ο «καταναλωτής» του). Για τον λόγο αυτό υπάρχουν οι κατακόρυφες ακμές από νότο προς βορρά στο Σχήμα 62.

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 212 Επί πλέον παρατηρούμε ότι όλοι οι κόμβοι με το ίδιο χρησιμοποιούν την τιμή B[] (βλ. ορισμό του αλγορίθμου). Για το λόγο αυτό υπάρχει μια μεγάλη οριζόντια γραμμή στο Σχήμα 62 η οποία μεταδίδει την τιμή B[] σε κάθε κόμβο της γραμμής (B[1] στην πρώτη γραμμή, B[2] στη δεύτερη γραμμή, κοκ). 9.1.3 Βήμα 3: Μετατροπή μακρινών συνδέσεων σε τοπικές Οι μακρινές γραμμές μετάδοσης των τιμών B[] αποτελούν πρόβλημα στην παράλληλη επεξεργασία γιατί αντιστοιχούν σε γραμμές bus οι οποίες δημιουργούν πρόβλημα στο συγχρονισμό των επεξεργαστών ιδίως όταν οι αποστάσεις είναι μεγάλες. Επί πλέον, το δίκτυο bus είναι ακατάλληλο για την μαζική παράλληλη επεξεργασία και για το λόγο αυτό οι μεγάλες γραμμές αποφεύγονται. Πώς μπορεί να γίνει αυτό; Μετατρέπουμε τις μακρινές συνδέσεις σε τοπικές όπως φαίνεται στο παρακάτω Σχήμα. Β[4] Β[3] Β[2] Β[1] 0 0 0 0 Σχήμα 63. Ο γράφος του Σχήματος 62 αφού μετασχηματίσαμε τις μακρινές συνδέσεις σε τοπικές. Η τιμή δεν μεταδίδεται ταυτόχρονα και στους 4 κόμβους της ίδιας σειράς αλλά μεταδίδεται από κόμβο σε κόμβο. Έτσι βέβαια εισάγουμε κάποιες επί πλέον εξαρτήσεις μεταξύ των κόμβων οι οποίες δεν υπήρχαν στον αρχικό αλγόριθμο, αλλά αυτός είναι και ο μόνος ασφαλής τρόπος για να εξαφανίσουμε τις μακρινές συνδέσεις χωρίς επιβάρυνση (τις περισσότερες φορές) στον χρόνο εκτέλεσης του αλγορίθμου.

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 213 9.1.4 Βήμα 4: Προβολή, χρονοδιάγραμμα Κάνουμε προβολή των κόμβων του γράφου σε ένα γράφο μικρότερης διάστασης που λέγεται Γράφος Ροής Σήματος (Sgnal Flow Graph). Επίσης ορίζουμε ένα χρονοδιάγραμμα εκτέλεσης των πράξεων δηλαδή μια χρονική σειρά εκτέλεσής τους. Πρώτα ορίζουμε μια κατεύθυνση προβολής του γράφου με κάποιο διάνυσμα p. Για παράδειγμα, αν χρησιμοποιήσουμε το διάνυσμα προβολής p = [1 0] στον γράφο του Σχήματος 63 παίρνουμε τον παρακάτω Γράφο Ροής Σήματος (ΓΡΣ) p=[1 0] Ε4 Ε3 Ε2 Ε1 Με την προβολή αυτή οι κόμβοι της γραμμής =1 προβάλλονται στον επεξεργαστή Ε1, οι κόμβοι της γραμμής =2 προβάλλονται στον επεξεργαστή Ε2, κοκ. Αυτό σημαίνει ότι οι κόμβοι της γραμμής =1 θα εκτελεστούν από τον επεξεργαστή Ε1, οι κόμβοι της γραμμής =2 θα εκτελεστούν από τον επεξεργαστή Ε2, κλπ. Οι ακμές του γράφου επίσης προβάλλονται σε ακμές πάνω στο ΓΡΣ. Συγκεκριμένα οι ακμές από νότο προς βορά προβάλλονται σε ακμές με κατεύθυνση επίσης από νότο προς βορρά, ενώ οι ακμές από δύση προς ανατολή προβάλλονται σε κυκλικές ακμές που μοιάζουν με θηλιές. Ο λόγος είναι ότι οι ακμές αυτές ενώνουν κόμβους από το επίπεδο πάλι στο ίδιο επίπεδο και άρα ενώνουν τον επεξεργαστή E με τον εαυτό του. Αυτό που απομένει τώρα είναι να ορίσουμε ένα χρονοδιάγραμμα εκτέλεσης του προγράμματος, δηλαδή να ορίσουμε πότε πρέπει να εκτελεστεί κάθε κόμβος στον αντίστοιχό του επεξεργαστή. Υπάρχουν διάφοροι τρόποι να γίνει αυτό, αλλά ο απλούστερος τρόπος είναι το γραμμικό χρονοδιάγραμμα. Στο γραμμικό

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 214 χρονοδιάγραμμα ορίζουμε ένα διάνυσμα κατεύθυνσης c και λέμε ότι όλοι οι κόμβοι που βρίσκονται σε κάποιο επίπεδο κάθετο στο c εκτελούνται την ίδια χρονική στιγμή. Για το λόγο αυτό μάλιστα τα επίπεδα κάθετα στο c καλούνται ισόχρονα επίπεδα. Για παράδειγμα, ας θεωρήσουμε το διάνυσμα c=[1 1] το οποίο μας δίνει τα παρακάτω ισόχρονα επίπεδα p=[1 0] t=7 t=6 t=5 c=[1 1] t=1 t=2 t=3 t=4 Σύμφωνα με το παραπάνω χρονοδιάγραμμα τα ισόχρονα επίπεδα (διακεκομμένες γραμμές) εκτελούνται με τη χρονική σειρά t=1, 2, 3, 4, 5, 6, 7 που φαίνεται στο Σχήμα. Λέγοντας ότι ένα ισόχρονο επίπεδο «εκτελείται» εννοούμε ότι εκτελούνται οι πράξεις στους κόμβους που περιέχονται σ αυτό το επίπεδο. Με άλλα λόγια, σύμφωνα με το παραπάνω χρονοδιάγραμμα, κατά τον πρώτο κύκλο (t=1) εκτελείται ο κόμβος <1,1>, κατά το δεύτερο κύκλο (t=2) εκτελούνται οι κόμβοι <1,2>, <2,1>, κατά τον τρίτο κύκλο (t=3) εκτελούνται οι κόμβοι <1,3>, <2,2>, <3,1>, κοκ. Αν είναι ο χρόνος που μεσολαβεί ανάμεσα στην εκτέλεση δύο διαδοχικών ισόχρονων επιπέδων μπορούμε να γράψουμε την καθυστέρηση που αντιστοιχεί σε κάθε ακμή του Γράφου Ροής Σήματος όπως φαίνεται στα δεξιά του παραπάνω σχήματος. Υπάρχουν ωστόσο περιορισμοί στο χρονοδιάγραμμα που μπορούμε να επιλέξουμε αφού κάποια χρονοδιαγράμματα δεν είναι επιτρεπτά. Γενικά δεν είναι επιτρεπτό ένα χρονοδιάγραμμα, (α) αν υπάρχει ένα ζευγάρι κόμβων A, B, τέτοιο ώστε ο κόμβος Β να εξαρτάται από τον Α (δηλ. να υπάρχει ακμή Α Β) και ο κόμβος Β να εκτελείται χρονικά πριν από τον Α. Αυτό είναι άλλωστε λογικό αφού η πράξη που γίνεται στο Β εξαρτάται από το αποτέλεσμα της πράξης του Α. Επίσης δεν επιτρέπεται οι κόμβοι Α και Β να βρίσκονται στο ίδιο ισόχρονο επίπεδο, δηλαδή δεν επιτρέπεται να εκτελούνται την

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 215 ίδια χρονική στιγμή. Και αυτός ο περιορισμός είναι επίσης λογικός αφού η πράξη που γίνεται στον κόμβο Α παίρνει μη-μηδενικό χρόνο να εκτελεστεί και επίσης η μεταφορά των δεδομένων από τον Α στον Β παίρνει μη-μηδενικό χρόνο άρα οι δύο κόμβοι δεν μπορούν να εκτελεστούν ταυτόχρονα. (β) αν δύο κόμβοι A, B που ανήκουν στο ίδιο χρονοεπίπεδο προβάλλονται στον ίδιο επεξεργαστή από την προβολή d. Προφανώς δε μπορούν και οι δύο να εκτελεστούν την ίδια στιγμή, στον ίδιο επεξεργαστή. Αυτό συμβαίνει όταν το διάνυσμα χρονοδιαγράμματος c είναι κάθετο στο διάνυσμα προβολής p. Μαθηματικά οι παραπάνω περιορισμοί περιγράφονται από την εξής πρόταση. Για να είναι ένα χρονοδιάγραμμα c αποδεκτό πρέπει να ισχύουν οι παρακάτω συνθήκες: για κάθε ακμή e του γράφου εξάρτησης να έχουμε c e > 0, όπου ο συμβολισμός a b για δύο n-διάστατα διανύσματα συμβολίζει το εσωτερικό γινόμενο δηλαδή την πράξη =1,...,n a *b c p 0. Με το χρονοδιάγραμμα c ορίζουμε το πότε θα εκτελεστούν οι κόμβοι ενός αλγορίθμου. Με την προβολή p που περιγράψαμε πιο πριν ορίζουμε πού (σε ποιους επεξεργαστές) θα εκτελεστούν οι διάφοροι κόμβοι. Έτσι έχοντας ορίσει το πού και το πότε έχουμε μια πλήρη περιγραφή της παράλληλης εκτέλεσης του αλγορίθμου. 9.1.5 Βήμα 5: Σχεδιασμός συστολικού επεξεργαστή Στο βήμα 4 παραπάνω είμαστε ήδη έτοιμοι να σχεδιάσουμε ένα παράλληλο επεξεργαστή για τις ανάγκες του αλγορίθμου μας. Στο συγκεκριμένο παράδειγμα ο επεξεργαστής μας είναι μια μονοδιάστατη συστολική συστοιχία η οποία φαίνεται παρακάτω (στο Σχήμα φαίνεται και η εσωτερική λεπτομέρεια κάθε επεξεργαστή)

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 216 A[][] Το εσωτερικό κάθε επεξεργαστή θυμίζει το εσωτερικό του κόμβου του γράφου εκτός από το γεγονός ότι οι καθυστερήσεις () των ακμών έχουν μετατραπεί σε regsters (flp-flops) και έχουν σχεδιαστεί στο εσωτερικό κάθε κόμβου. Κατά τα άλλα η συστολική συστοιχία έχει ακριβώς την ίδια τοπολογία με το Γράφο Ροής Σήματος. Ο επεξεργαστής μας για το συγκεκριμένο αλγόριθμο περιέχει μια μονάδα πρόσθεσης και μια μονάδα πολλαπλασιασμού και δύο μονάδες καθυστέρησης (καταχωρητές). 9.2 Παραδείγματα Παράδειγμα 21. Δίνεται ο παρακάτω γράφος εξάρτησης

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 217 Ο γράφος αυτός περιέχει τεσσάρων ειδών ακμές. Αυτές περιγράφονται παρακάτω: e 1 =[1 0] e 2 =[0 1] e 3 =[1 1] e 4 =[-1 1] Ερώτηση: Αν p = [1 1], ποια από τα παρακάτω χρονοδιαγράμματα είναι αποδεκτά; (α) c = [1 1], (β) c = [1 0], (γ) c = [1 2]. Απάντηση: (α) Το χρονοδιάγραμμα c = [1 1] δεν είναι αποδεκτό διότι c e 4 = 1*( 1) + 1*1 = 0 (όχι >0). (β) Το χρονοδιάγραμμα c = [1 0] είναι επίσης μη-αποδεκτό διότι c e 4 = 1*( 1) + 0*1 = 1 < 0. (γ) Το χρονοδιάγραμμα c = [1 2] είναι αποδεκτό διότι c e 1 = 1*1 + 1*0 = 1 > 0 c e 2 = 1*0 + 1*1 = 1 > 0 c e 3 = 1*1 + 1*1 = 2 > 0 c e 4 = 1*( 1) + 2*1 = 1 > 0. c p = 1*1 + 2*1 = 3 0. Παράδειγμα 22. Βρείτε το Γράφο Εξάρτησης του παρακάτω αλγορίθμου sortng for (=1 to N) { m[][] = - for (=1 to ) { m[+1][] = max(x[][],m[][]) x[][+1] = mn(x[][],m[][]) Ο αριθμός N είναι το πλήθος των αριθμών που θέλουμε να κατατάξουμε σε αύξουσα σειρά. Για απλούστευση θα υποθέσουμε ότι Ν=4. Τα δεδομένα του αλγορίθμου είναι οι αρχικές τιμές x[1][1], x[2][1], x[3][1], x[4][1].

Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 218 Πρώτ απ όλα βλέπουμε ότι ο αλγόριθμος περιέχει δύο βρόχους τον ένα μέσα στον άλλο οπότε η διάσταση του γράφου είναι 2. Κατόπιν παρατηρούμε ότι η καρδιά του εσωτερικού βρόχου περιέχει τις τιμές m[][[] και x[][] στα αριστερά των αναθέσεων και τις τιμές m[+1][], x[][+1] στα αριστερά των αναθέσεων. Έτσι ο κόμβος <,> θα έχει τιμές εισόδου τις m[][[] και x[][] και τιμές εξόδου τις m[+1][], x[][+1]. Το εσωτερικό του κόμβου φαίνεται στο παρακάτω Σχήμα x[][] m[][] ΜΑΧ m[+1][] ΜIN x[][+1] Προφανώς οι εξαρτήσεις μεταξύ των κόμβων είναι οι εξής δύο: ο κόμβος <+1,> εξαρτάται από τον κόμβο <,> λόγω του m[+1][] ενώ ο κόμβος <,+1> εξαρτάται από τον κόμβο <,> λόγω του x[][+1]. Ο γράφος εξάρτησης είναι ο παρακάτω - m[1][1] x[1][1] x[2][1] x[3][1] x[4][1] - m[5][1] m[2][2] m[5][2] - m[3][3] m[5][3] - m[4][4] m[5][4]