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

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

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

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

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

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

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

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

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

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

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

Παραλληλισμός σε επίπεδο εντολών

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

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

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

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

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

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

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

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

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

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

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

Κατανεμημένος και Παράλληλος Προγραμματισμός. Ύλη μαθήματος. Βιβλιογραφία Μαθήματος 2/27/2016

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

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Αρχιτεκτονική-ΙI Ενότητα 4 :

Δομημένος Προγραμματισμός

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

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Παράλληλοι υπολογιστές

Εισαγωγή στην πληροφορική

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

Διάλεξη 12 Καθυστερήσεις (Stalls)

Ενσωματωμένα Συστήματα

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

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

Υπερβαθµωτή Οργάνωση Υπολογιστών

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

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

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


Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

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

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

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

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

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

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

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:07. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

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

Παράλληλος προγραμματισμός: παράλληλες λ υπολογιστικές πλατφόρμες και ανάλυση προγραμμάτων

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

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

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

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

Κατανεμημένα Συστήματα

Περιορισμοί των βαθμωτών αρχιτεκτονικών

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Συστήµατα Παράλληλης Επεξεργασίας

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

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

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

Τελική Εξέταση, Απαντήσεις/Λύσεις

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Multicycle datapath

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

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

Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές

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

30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 1. Πλυντήριο. 2. Στεγνωτήριο. 3. ίπλωµα. 4. αποθήκευση. προσέγγιση για 4.

Transcript:

Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 3: Διασωλήνωση, Clusters, Στοιχεία Παράλληλου Προγραμματισμού Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοπός της Ενότητας Η κατανόηση της διασωλήνωσης των επεξεργαστών. Η κατανόηση των τρόπων εκμετάλλευσης της παραλληλίας. 4

Κατηγοριοποίηση κατά Flynn Single instruction single data stream (SISD) Single instruction multiple data stream (SIMD) Multiple instruction single data stream (MISD) Multiple instruction multiple data stream (MIMD) Uniprocessors Vector processors Array processors Shared memory (tightly coupled Distributed memory (loosely coupled) Symmetric multiprocessor (SMP) No uniform memory access (NUMA) Clusters 5

Οι 4 κατηγορίες κατά Flynn: (A) SISD Παράδειγμα: Για μια πρόσθεση 2 αριθμών απαιτούνται οι εξής ενέργειες (απαιτούνται 5*n κύκλοι): Φόρτωση εντολής πρόσθεσης στο CPU. Φόρτωση δεδομένων πρόσθεσης αθροιστή Α σε ένα καταχωρητή CPU. Φόρτωση δεδομένων πρόσθεσης αθροιστή Β σε ένα καταχωρητή CPU. Εκτέλεση εντολής Μεταφορά αποτελέσματος στη μνήμη. 6

Βελτίωση του χρόνου εκτέλεσης με διασωλήνωση Όλες οι λειτουργικές μονάδες χρησιμοποιούνται ταυτόγχρονα ώστε σε κάθε κύκλο να παράγεται αποτέλεσμα. Η συνολικός χρόνος βελτιώνεται και γίνεται (n-1)+5. Χωρίς διασωλήνωση ο χρόνος n*5. 7

Διασωλήνωση (1/4) Διασωλήνωση είναι η σύνδεση σε σειρά επεξεργαστικών στοιχείων, έτσι ώστε η έξοδος ενός στοιχείου να είναι η είσοδος στο επόμενο. Η ονομασία έρχεται από το σωλήνα του νερού. Νερό εισέρχεται συνεχώς στο σωλήνα, χωρίς να χρειάζεται να περιμένουμε να βγει από την άλλη άκρη. Οδηγεί στη μείωση του κρίσιμου μονοπατιού Υπάρχουν στάδια επεξεργασίας. Κάθε στάδιο ολοκληρώνει ένα κομμάτι της εντολής του επεξεργαστή. 8

Διασωλήνωση (2/4) Η διασωλήνωση ΔΕΝ αυξάνει την ταχύτητα εκτέλεσης μιας εντολής. Η διασωλήνωση αυξάνει το ρυθμό απόδοσης (αριθμό εκτελούμενων εντολών στη μονάδα του χρόνου). 9

Ένας υπολογιστής χωρίς διασωλήνωση 10

Ένας υπολογιστής με διασωλήνωση 11

Διασωλήνωση (3/4) O Pentium IV είχε 20 επίπεδα διασωλήνωσης. O Prescott Pentium 30 επίπεδα διασωλήνωσης (hyper-pipelining). Πολύ καλή απόδοση, αλλά και πολλά προβλήματα. Intel Core i7 (Nehalem) 14 επίπεδα διασωλήνωσης, εκτέλεση έως 4 εντολές ανά κύκλο (IPC Instructions per clock). 12

Διασωλήνωση: Που βασίζεται Οι επεξεργαστές λειτουργούν συνεχώς ως εξής: Fetch Instruction (A). Store Instruction in Register. Decode Instruction (B). Increment the address on program counter. Execute the Instruction (C). Write the results (D). => 4 είναι τα πιο απλά στάδια της διασωλήνωσης. 13

Διασωλήνωση: Παράδειγμα στην αυτοκινητοβιομηχανία (1/3) Stage 1: build the chassis. Stage 2: drop the engine in the chassis. Stage 3: put doors, a hood, and coverings on the chassis. Stage 4: attach the wheels. Stage 5: paint the SUV. 14

Διασωλήνωση: Παράδειγμα στην αυτοκινητοβιομηχανία (2/3) Μπορούμε να δημιουργήσουμε και άλλα επίπεδα διασωλήνωσης: Stage 1: build the chassis: Crew 1a: Fit the parts of the chassis together and spotweld the joins. Crew 1b: Fully weld all the parts of the chassis. Stage 2: drop the engine in the chassis: Crew 2a: Place the engine in the chassis and mount it in place. Crew 2b: Connect the engine to the moving parts of the car. 15

Διασωλήνωση: Παράδειγμα στην αυτοκινητοβιομηχανία (3/3) Stage 3: put doors, a hood, and coverings on the chassis: Crew 3a: Put the doors and hood on the chassis. Crew 3b: Put the other coverings on the chassis. Stage 4: attach the wheels: Crew 4a: Attach the two front wheels. Crew 4b: Attach the two rear wheels. Stage 5: paint the SUV: Crew 5a: Paint the sides of the SUV. Crew 5b: Paint the top of the SUV. 16

Ένας υπολογιστής με διασωλήνωση (1/2) 17

Ένας υπολογιστής με διασωλήνωση (2/2) Έχει μειωθεί ο χρόνος κάθε σταδίου.. 18

Η διασωλήνωση ως προς την απόδοση 19

Η διασωλήνωση δεν είναι πανάκεια Προσθέτει αρκετή πολυπλοκότητα. Όλα θα πρέπει να είναι συγχρονισμένα Μερικές φορές ένα στάδιο stalls ( κολλάει ). Όλη η σειρά σταματάει μέχρι να συνεχίσει το στάδιο αυτό. 20

2 κύκλοι stall και μείωση της απόδοσης 21

100 κύκλοι stall και μείωση της απόδοσης 22

Διασωλήνωση & Πολυπλοκότητα Δεν είναι ίδιας πολυπλοκότητας όλα τα στάδια της διασωλήνωσης. Το πιο αργό στάδιο της διασωλήνωσης καθορίζει και το συνολικό throughput. Ο χρόνος εκτέλεσης του πιο αργού σταδίου ορίζεται από το κρίσιμο μονοπάτι της ψηφιακής λογικής αυτού του σταδίου. 23

Ταυτόχρονο pipeline (superscalar) 24

Simultaneous multithreading = hyperthreading (SMT) Υποστηρίζεται από τους σύγχρονους επεξεργαστές. Τα νήματα εκτελούνται παράλληλα. Υπάρχει δεύτερο pipeline queue. Καλύτερη εκμετάλλευση του hw σε stall. 25

2 Σημαντικά στοιχεία της διασωλήνωσης Pipeline stalls must be avoided. As we've seen earlier, pipeline stalls cause the processor's completion rate and performance to drop. Pipeline fills must be avoided at all costs. Filling up the processor's pipeline takes a serious toll on both completion rate and performance. This is especially true when a pipeline is very long but has a clock rate that's comparable to that of a processor with a shorter pipeline. 26

Οι κλασικές μηχανές RISC έχουν 5 στάδια (classic RISC pipeline) Basic five-stage pipeline in a RISC machine: (IF = Instruction Fetch, ID = Instruction Decode, EX = Execute, MEM = Memory access, WB = Register write back). The vertical axis is successive instructions; the horizontal axis is time. So in the green column, the earliest instruction is in WB stage, and the latest instruction is undergoing instruction fetch. 27

Ερώτηση (1/3) Να εξηγηθεί γιατί η ταχύτητα μιας μηχανής που χρησιμοποιεί διασωλήνωση προσδιορίζεται από την καθυστέρηση που προκαλείται στη βραδύτερη βαθμίδα της. 28

Ερώτηση (2/3) Μια αιτία για καθυστέρηση στους υπολογιστές διασωλήνωσης είναι οι εντολές άλματος υπό συνθήκη, επειδή η διεύθυνση της επόμενης εντολής προσδιορίζεται μετά την εκτέλεση της παραπάνω εντολής. Μια λύση είναι η χρήση διπλού διαύλου. Να εξηγηθεί ο μηχανισμός εκτέλεσης των εντολών άλματος υπό συνθήκη. Πλεονεκτήματα και μειονεκτήματα του διπλού αγωγού. 29

Ερώτηση (3/3) Ποια είναι τα συγκριτικά πλεονεκτήματα και μειονεκτήματα των χαλαρά συνδεδεμένων συστημάτων πολυεπεξεργασίας σε σχέση με τα στενά συνδεδεμένα συστήματα πολυεπεξεργασίας; 30

Κατηγοριοποίηση των πολύ-υπολογιστών Ομογενή συστήματα (homogenous systems): Το δίκτυο διασύνδεσης έχει παντού την ίδια τεχνολογία. Οι επεξεργαστές είναι ίδιοι και έχουν πρόσβαση στην ίδια ποσότητα μνήμης. Ετερογενή συστήματα (heterogenous systems): Το δίκτυο διασύνδεσης δεν έχει παντού την ίδια τεχνολογία. Οι επεξεργαστές δεν είναι ίδιοι και δεν έχουν πρόσβαση στην ίδια ποσότητα μνήμης. 31

Clusters Συστοιχίες Υπολογιστών (1/2) Είναι συστοιχίες από φτηνούς υπολογιστικούς κόμβους (πολυεπεξεργαστές, π.χ. (πολυεπεξεργαστές, π.χ. Dual Intel or AMD) που φτιάχνουν έναν πολύ- -υπολογιστή (Υβριδικό σύστημα). Συνδέονται μεταξύ τους με fast ethernet: Myrinet or Infiniband fast ethernet ή ακόμα και Gigabit ethernet (big latency). Αρκετά δημοφιλή λόγο μικρού κόστους/μεγάλης ονομαστικής ισχύος. Επεκτείνονται εύκολα με προσθήκη επιπλέον κόμβων. 32

Κατανεμημένοι πολύ-υπολογιστές (1/2) Κάθε επεξεργαστής έχει τη δική του τοπική μνήμη. Δεν υπάρχει κοινή μνήμη στην οποία να έχουν πρόσβαση οι επεξεργαστές. Επικοινωνούν μεταξύ τους (ανταλλαγή δεδομένων) με δίκτυο διασύνδεσης. Είναι εξαιρετικά επεκτάσιμα συστήματα μερικές χιλιάδες: MPP (Massively Parallel Processors). Λόγο (συνήθως) αργής επικοινωνίας μεταξύ των cpus, πρέπει να αποφεύγεται η συχνή ανταλλαγή μηνυμάτων. 33

Κατανεμημένοι πολύ-υπολογιστές (2/2) 34

Clusters Συστοιχίες Υπολογιστών (2/2) 35

6-core but a 12-core is planned in 1-2 years L1 64KB+64KB L2 1024KB L3 6MB Vcore 1.55V TDP 89W 45nm 2.3-2.9Ghz DD3 AMD Opteron 36

4 cpu. On chip Memory controller DDR3 (25GB/s with 3 modules). 64K L1. 1MB L2. 8MB L3 (shared). TDP 130W. QPI (Quick Path Interconnect) to connect with other CPU. Intel Core i7 (45nm) 37

Intel Core i7 38

Στοιχεία Παράλληλου Προγραμματισμού 39

Στοιχεία Παράλληλου Προγραμματισμού Προκειμένου να χρησιμοποιήσουμε την παράλληλη επεξεργασία, μπορούμε να χρησιμοποιήσουμε δυο προσεγγίσεις: Την ακολουθιακή. Την παράλληλη. 40

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

Η παράλληλη προσέγγιση Ο προγραμματιστής και ο μεταγλωττιστής συνεργάζονται. Το πρόβλημα έχει έμφυτο παραλληλισμό. Ο προγραμματιστής έχει τρόπο να εκφράσει τον παραλληλισμό. Ο μεταγλωττιστής μεταφράζει το πρόγραμμα σε πολλαπλούς πυρήνες. 42

Ο προγραμματιστής πρέπει να συνεργαστεί με το compiler Οι προγραμματιστές σύγχρονων επεξεργαστών πρέπει να λάβουν υπόψη την αρχιτεκτονική και τον μεταγλωττιστή έτσι ώστε να πάρουν την μέγιστη δυνατή απόδοση:...πρέπει να αναδιοργανώσεις τα δεδομένα και τους αλγορίθμους για να εκμεταλλευτείς τις αρχιτεκτονικές δυνατότητες... Από το Introduction to Microarchitectural Optimization for Itanium 2 Processors, p.3 Για τη βέλτιστη απόδοση πρέπει να γνωρίζει, ποια είναι η αρχιτεκτονική της cache, τι δίαυλοι χρησιμοποιούνται, πόσους καταχωρητές διαθέτει ο κάθε επεξεργαστής κ.τ.λ. 43

Μεθοδολογία Παράλληλου Προγραμματισμού Εξέταση του προβλήματος, ακολουθιακό πρόγραμμα ή τμήμα κώδικα. Εξέταση πιθανότητας για παραλληλισμό. Προσπάθεια να κρατήσεις όλους τους πυρήνες απασχολημένους κάνοντας χρήσιμο έργο. 44

Τρόποι Εκμετάλλευσης Παραλληλίας Αποσύνθεση εισόδων (Domain Decomposition). Αποσύνθεση εργασιών (Task Decomposition). Διασωλήνωση (Pipeline). 45

Αποσύνθεση εισόδων Πρώτον, αποφασίζουμε πως τα δεδομένα πρέπει να κατανεμηθούν στους πυρήνες. Δεύτερον, αποφασίζουμε ποιες εργασίες θα πρέπει να κάνει ο κάθε πυρήνας. Παράδειγμα: Διανυσματική πρόσθεση A[]=B[]+C[]. Στοιχείο κλειδί: Μπορούν να γίνουν πράξεις σε περιοχές εισόδων ανεξάρτητα από τις άλλες περιοχές. 46

Παράδειγμα αποσύνθεσης εισόδων (1/2) Βρες το μεγαλύτερο στοιχείο ενός πίνακα. 47

Παράδειγμα αποσύνθεσης εισόδων (2/2) Βρες το μεγαλύτερο στοιχείο ενός πίνακα. 48

Αποσύνθεση Εργασιών (1/3) Πρώτον, διαιρούμε το πρόβλημα σε ανεξάρτητες εργασίες. Δεύτερον, αποφασίζουμε ποια δεδομένα πρόκειται να έχουν πρόσβαση (διάβασμα και/ή γράψιμο) από ποια εργασία. Παράδειγμα: Χειριστήρια συμβάντος στο Γραφικό Περιβάλλον Χρήστη. 49

Αποσύνθεση Εργασιών (2/3) Έστω έχουμε το παρακάτω γράφημα των εξαρτήσεων... 50

Αποσύνθεση Εργασιών (3/3) Δεδομένου της επεξεργαστικής πολυπλοκότητας και της επικοινωνίας μπορούμε να κάνουμε την παρακάτω αποσύνθεση. 51

Διασωλήνωση (4/4) Ειδικό είδος εργασίας αποσύνθεσης. Παράλληλη εκτέλεση εντολών assembly. Παράδειγμα: 3D οπτικοποίηση σε γραφικά για υπολογιστές. 52

Διασωλήνωση με πολλαπλούς πυρήνες 53

Σύνοψη... Θα πρέπει τώρα να είστε σε θέση να: βρίσκετε ευκαιρίες για παραλληλισμό σε τμήμα κώδικα και εφαρμογών, περιγράφετε τρεις μεθόδους διαίρεσης ανεξάρτητων εργασιών. Χρησιμοποιήθηκε υλικό από Intro to Parallel Programming της Intel. 54

Τέλος Ενότητας 55