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

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

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

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

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

Εισαγωγή στους Αλγορίθμους

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

Εισαγωγή στους Αλγορίθμους

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

Διοικητική Λογιστική

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνοοικονομική Μελέτη

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Δομές Δεδομένων Ενότητα 1

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Διδακτική της Πληροφορικής

Μηχανολογικό Σχέδιο Ι

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Τεχνικό Σχέδιο - CAD

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Εισαγωγή στον δομημένο προγραμματισμό

Ψηφιακή Επεξεργασία Εικόνων

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Ιστορία της μετάφρασης

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Διοικητική Λογιστική

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Έννοιες φυσικών επιστημών Ι και αναπαραστάσεις

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

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

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Κοινωνιολογία της Εκπαίδευσης

Λειτουργικά Συστήματα

Βάσεις Περιβαλλοντικών Δεδομένων

Λογιστική Κόστους. Ενότητα 4: ΣΥΜΠΕΡΙΦΟΡΑ - ΦΥΣΗ ΚΟΣΤΟΥΣ. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Τεχνολογία Πολυμέσων. Ενότητα 8: Pool Table. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διδακτική Πληροφορικής

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

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

Μαθηματική Ανάλυση Ι

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Δομές Δεδομένων Ενότητα 3

Βέλτιστος Έλεγχος Συστημάτων

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Εισαγωγή στους Υπολογιστές

Βάσεις Περιβαλλοντικών Δεδομένων

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

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

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εκκλησιαστικό Δίκαιο

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

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

Κβαντική Επεξεργασία Πληροφορίας

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

Διοίκηση Επιχειρήσεων

Σχεδίαση Δικτύων Υπολογιστών

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

Εξελικτική Ψυχολογία: Κοινωνικο-γνωστική ανάπτυξη

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

ΑΝΤΙΡΡΥΠΑΝΤΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΑΙΩΡΟΥΜΕΝΩΝ ΣΩΜΑΤΙΔΙΩΝ Ενότητα 2: Αιωρούμενα σωματίδια & Απόδοση συλλογής Αν. Καθ. Δρ Μαρία Α. Γούλα Τμήμα Μηχανικών

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

Σημείωμα Αναφοράς Copyright, Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών, Μηνάς Δασυγένης. «Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.uowm.gr/courses/icte268/ 56

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Όχι Παράγωγα Έργα Μη Εμπορική Χρήση 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] h t t p ://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό 57

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 58