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

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

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

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

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

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

Εισαγωγή Θέματα H/W. Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης. Κατανεμημένα Συστήματα (Ε) Εισαγωγή: Θέματα H/W 1

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

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

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

Εικονική Μνήμη (virtual memory)

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

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

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

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

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

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

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

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

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

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

Εικονική Μνήμη (Virtual Μemory)

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

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

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

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

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

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

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

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

5/3/2012. Εισαγωγή στα Παράλληλα Συστήµατα (Οργάνωση-Προγραµµατισµός) Β. Δημακόπουλος Α. Ευθυμίου

Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

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

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

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

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

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

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

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

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

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

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

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

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

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

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

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

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

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

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

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

Υ07 Παράλληλα Συστήματα /4/2016 Συστήματα κατανεμημένης μνήμης (ΙΙ)

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

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

Υ07. Διδάσκων: ΠΑΡΑΛΛΗΛΑ ΣΥΣΤΗΜΑΤΑ. Β. Δημακόπουλος.

CMOS Technology for Computer Architects

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

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

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

Επίπεδο δικτύου IP Forwading κτλ

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-ΙI. Ενότητα 5 : Αρχιτεκτονική ΙΑ-32

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές (ΗΥ)

Τέτοιες λειτουργίες γίνονται διαμέσου του

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

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

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

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

2 Composition. Invertible Mappings

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

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

Λογικά σύμβολα των CPU, RAM, ROM και I/O module

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

[1] P Q. Fig. 3.1

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

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

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

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

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

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

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

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

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

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

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

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

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

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

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

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

Εισαγωγή Έννοιες Σχετικές Με S/W

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

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Transcript:

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

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

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

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

Συστήματα παράλληλης επεξεργασίας και μνήμη (a) A shared-memory multiprocessor. (b) A message-passing multicomputer. (c) A wide area distributed system. 5

Οργάνωση Μνήμης σε πολυ-πύρηνα συστήματα Intel Xeon 7500 (8 cores, Nehalem-EX) AMD Opteron 6100 (12 cores Magny-Cours) Πάνω στην ίδια μητρική, μπορούν να τοποθετηθούν πολλαπλές συσκευασίες (sockets) που η κάθε μια έχει πολλαπλούς πυρήνες. Κάθε socket διαχειρίζεται (με τους ελεγκτές μνήμης) μια ομάδα από chip μνήμης. Ο επεξεργαστής έχει πολύ καλό χρόνο πρόσβασης σε αυτή την ομάδα. Αν όμως θελήσει να προσπελάσει μνήμη που βρίσκεται σε άλλο επεξεργαστή, τότε θα πρέπει να χρησιμοποιήσει, κάποιο ειδικό κανάλι επικοινωνίας (QPI ή HT) για να το ζητήσει από κάποιον άλλο επεξεργαστή. 6

Οργάνωση μνήμης σε κατανεμημένα συστήματα Λογικά κατανεμημένη μνήμη: κάθε μνήμη έχει δικιά της διεύθυνση και μπορεί να προσπελαστεί μόνο από τους επεξεργαστές στους οποίους ανήκει (αν κάποιος εξωτερικός επεξεργαστής απαιτεί κάτι από τη μνήμη, πρέπει να το ζητήσει από τον τοπικό επεξεργαστή). Κοινόχρηστη κατανεμημένη μνήμη (Distributed Shared Memory): Όλες οι μνήμες είναι χωρικά κατανεμημένες, αλλά αποτελούν ένα ενιαίο χώρο διευθύνσεων. Έτσι, ένας απομακρυσμένος επεξεργαστής, μπορεί να γράψει άμεσα σε μια μνήμη που βρίσκεται στην τοπική μνήμη ενός άλλου επεξεργαστή. 7

Κατηγορίες παράλληλων συστημάτων Shared-memory multiprocessors: Every CPU has equal access to the entire physical memory. Message-passing multicomputers: Each CPU has it s own memory. The CPU s communicate with each other using messages over the interconnection structure. Wide area distributed system: Computer systems connected over a network. Communication is again by messages but there is a delay due to the network. 8

Κατηγοριοποίηση των συστημάτων μοιραζόμενης μνήμης Uniform Memory Access (UMA) Ομοιόμορφη προσπέλαση μνήμης. NonUniform Memory Access (NUMA) Μη ομοιόμορφη προσπέλαση μνήμης. Cache-Only Memory Architecture (COMA). 9

Η αρχιτεκτονική μνήμης Uniform Memory Access (UMA) 10

Uniform Memory Access (UMA) Ομοιόμορφη προσπέλαση μνήμης (1/2) Η κοινή μνήμη είναι προσβάσιμη από όλους τους επεξεργαστές μέσω ενός δικτύου διασύνδεσης με τον ίδιο τρόπο που ένας και μόνο επεξεργαστής έχει πρόσβαση στην μνήμη. Το δίκτυο δίκτυο διασύνδεσης μπορεί να είναι: απλός δίαυλος, πολλαπλός δίαυλος, διασταύρωσης (single bus, multiple buses, crossbar). Κάθε επεξεργαστής έχει ίση ευκαιρία για εγγραφή/ανάγνωση στη μνήμη καθώς και ίση ταχύτητα πρόσβασης. SMP systems (Symmetric Multiprocessor systems): Επειδή η πρόσβαση στη μνήμη είναι ισορροπημένη. 11

Uniform Memory Access (UMA) Ομοιόμορφη προσπέλαση μνήμης (2/2) Η UMA οργάνωση Μνήμης είναι από τις πιο δημοφιλείς στα συστήματα διαμοιραζόμενης μνήμης. Εμπορικά παραδείγματα παραδείγματα: Sun Starfire Servers, HP V series, Compaq AlphaServer GS. 12

Παράδειγμα Sequent (1/3) Παράδειγμα 'Sequent Computer Systems. Από τα πρώτα SMP (1984). Διατηρούσε συνάφεια μνήμης. Εκτελούσε ORACLE UNIX (τέλος 1980 αρχή 1990). Στο τέλος του 1990 τροποποίησαν τα συστήματά τους σε NUMA, και αγοράστηκαν από την IBM. Το 2000 η INTEL προσέφερε την αρχιτεκτονική Itanium και οδήγησε σε πτώση τιμών. Το 2002 η IBM απέλυσε τους μηχανικούς της SEQUENT και σταμάτησε η παραγωγή τους. 13

Παράδειγμα Sequent (2/3) Balance 21000: 20 8Mhz NS32016 Write-through cache Common memory SCSI, ethernet 4.2BSD Unix Πελάτες: Τράπεζες, Κυβέρνηση, Εμπορικές επιχειρήσεις, πανεπιστήμια. 14

Παράδειγμα Sequent (3/3) Symmetry 2000 1987. Intel 80386. 30 cpu copy-back. 64bit memory bus. DYNIX/ptx (Unix + 4.2BSD). Oracle support (databases). Added high availability and Oracle Parallel Server. Επόμενες εκδόσεις 486, Pentium... Χρήση ccnuma. 15

Sequent 16

Ένα τυπικό σύστημα SMP Καθυστέρηση L1,L2,L3,memory. 17

Συστήματα UMA με σύνδεση απλού διαύλου (1/2) Three bus-based multiprocessors. (a) Without caching. (b) With caching. (c) With caching and private memories. UMA : Uniform access to the entire memory, same access times for all CPU s. 18

Συστήματα UMA με σύνδεση απλού διαύλου (2/2) Each CPU has to wait for the bus to be idle to read or write to the memory. For 2 or 3 computers, bus contention is manageable (a). Δημιουργείται πρόβλημα συναγωνισμού στη μνήμη αφού όλοι οι επεξεργαστές χρησιμοποιούν μια κοινή μνήμη. For larger number of CPU s, a cache is added to the CPU. Since reads can be satisfied by cache contents, there will be less traffic on the bus (b). Επιλύει εν μέρει το πρόβλημα του συναγωνισμού. Writing has to be managed! Some systems have private and shared memories (c). Mostly private memory is used. Shared memory is for shared variables between CPUs. Needs carefull programming! 19

Συστήματα UMA Η χρήση κρυφής μνήμης αντιμετωπίζει το πρόβλημα του ανταγωνισμού της μνήμης, αλλά δημιουργεί ένα άλλο πρόβλημα. Το πρόβλημα που δημιουργείται είναι της συνάφειας μνήμης (επίσης ονομάζεται συνέπεια κρυφής μνήμης), και εμφανίζεται όταν κάποιος επεξεργαστής γράφει σε μια θέση μνήμης, η οποία βρίσκεται στη κρυφή μνήμη άλλου επεξεργαστή. Ο άλλος επεξεργαστής θα έχει λοιπόν άκυρα δεδομένα. 20

Μια λύση στο πρόβλημα της συνέπειας κρυφής μνήμης Τεχνική write-through. Μόλις κάποιος επεξεργαστής γράψει, γίνεται broadcast της τιμής στον κοινό διάδρομο. Όλοι οι επεξεργαστές ακούν τον κοινό διάδρομο. Αν κάποιος κρατάει αντίγραφο τότε ενημερώνει ανάλογα την αντίστοιχη θέση. 21

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

Τεχνική της μη διαδοχικής διευθυνσιοδότησης Μια τεχνική επίλυση είναι να μην είναι συνεχόμενες οι διευθύνσεις μνήμης σε κάθε τμήμα. Μονάδα Μνήμης #1 Μονάδα Μνήμης #2 Μονάδα Μνήμης #3 Διεύθυνση 0 Διεύθυνση 1 Διεύθυνση 2 Διεύθυνση 3 Διεύθυνση 4 Διεύθυνση 5 Διεύθυνση 6 Διεύθυνση 7 Διεύθυνση 8 Διεύθυνση 9 Διεύθυνση 10 Διεύθυνση 11 Έτσι αν οι επεξεργαστές ζητήσουν τις διευθύνσεις μνήμης 0,1,2,3,4,5 τότε δε θα παρουσιαστεί συνωστισμός. 23

Συστήματα UMA με σύνδεση δίαυλο διασταύρωσης (1/2) (a) (b) An 8 8 crossbar switch. An open crosspoint. (c) A closed crosspoint. 24

Συστήματα UMA με σύνδεση δίαυλο διασταύρωσης (2/2) Use of a single bus limits (even with caches) the number of CPUs to about 16 or 32 CPUs. A crossbar switch connecting n CPUs to k memories may solve this problem. A crosspoint is a small electronic switch. Contention for memory is still possible if k < n. Partitioning the memory into n units may reduce the contention. 25

Συστήματα UMA με σύνδεση διακόπτη (switch) (1/2) (a) A 2 2 switch with two input lines, A and B, and two output lines, X and Y. (b) A message format. Module: memory unit. Address: an address within a module. Opcode: Read or Write. Value: value to be written. 26

Συστήματα UMA με σύνδεση διακόπτη (switch) (2/2) 27

Η αρχιτεκτονική μνήμης NUMA 28

Κατηγοριοποιήσεις NUMA Simple NUMA cache coherence is not kept by the hardware (CM*,Cenju, T3D, RWC-1, Earth simulator). CC (Cache Coherent)-NUMA providing coherent cache. (DASH, Alewife, Origin, SynfinityNUMA, NUMA-Q). COMA (Cache Only Memory Architecture): No home memory (DDM,KSR-1). 29

Η αρχιτεκτονική μνήμης Simple NUMA 30

Non Uniform Memory Access (NUMA) Μη ομοιόμορφη προσπέλαση μνήμης Κάθε επεξεργαστής έχει άμεση & ταχύτατη πρόσβαση σε ένα τμήμα της κοινής μνήμης. Υπάρχει ένας κοινός χώρος διεύθυνσης μνήμης (shared address space). Ο χρόνος πρόσβασης σε κάθε άρθρωμα μνήμης εξαρτάται από την απόσταση του κάθε επεξεργαστή από αυτό ==> Μη Ομοιόμορφη προσπέλαση μνήμης. Το δίκτυο διασύνδεσης μπορεί να είναι: ιεραρχικοί δίαυλοι, δένδρα, (hierarchical buses, tree). Η απόδοση εξαρτάται από την «τοπικότητα των δεδομένων» -- data locality δηλ για το αν οι αιτήσεις από τους επεξεργαστές για δεδομένα αφορούν τοπικές ή όχι θέσεις μνήμης. 31

Non Uniform Memory Access (1/2) Providing shared memory whose access latency and bandwidth are different by the address. Usually, its own memory module is easy to be accessed, but ones with other PUs are not. All shared memory modules are mapped into a unique logical address space, thus the program for UMA machines works without modification. Also called a machine with Distributed Shared Memory A machine with Centralized Shared memory (UMA). 32

Non Uniform Memory Access (2/2) A PU can access memory with other PUs/Clusters, but the cache coherence is not kept. Simple hardware. Software cache support functions are sometimes provided. Suitable for connecting a lot of PUs: Supercomputers: Cenju, T3D, Earth simulator, IBM BlueGene, Roadrunner. Why recent top supercomputers take the simple NUMA structure; Easy programming for wide variety of applications. Powerful interconnection network. 33

Η NUMA χρησιμοποιήθηκε το 1970 πρώτη φορά 34

NUMA Cray T3D (1993) Using. Alpha 21064. 35

NUMA Earth Simulator 2002 (1/2) 36

NUMA Earth Simulator 2002 (2/2) 37

ΙΒΜ BlueGene/L 38

Το μοντέλο NUMA 39

NUMA και SMP Η NUMA έχει σχεδιαστεί για να ξεπεράσει τα όρια κλιμάκωσης που υπάρχουν στα SMP (UMA). Ασφαλώς απαιτείται διασύνδεση υψηλής ταχύτητας. Και η αρχιτεκτονική NUMA και η UMA έχουν κοινό χώρο διευθύνσεων μνήμης. 40

Ορισμός της τοπικής μνήμης Τι ονομάζουμε τοπική μνήμη; Η μνήμη που βρίσκεται στον ίδιο δίαυλο με τον επεξεργαστή που εκτελεί μια διεργασία. Κάθε μνήμη που δεν ανήκει σε αυτή την κατηγορία ονομάζεται απομακρυσμένη μνήμη. 41

Ένα παράδειγμα με NUMA Έστω ψήνουμε ένα κέικ. Κάποια υλικά τα έχουμε στο ντουλάπι (local memory). Κάποια θα τα δανειστούμε από το γείτονα (remote memory). Προσπαθούμε να έχουμε όσα παραπάνω από τα υλικά που χρειαζόμαστε στο ντουλάπι μας. Το ντουλάπι μας όμως χωράει συγκεκριμένο αριθμό υλικών (όχι όλα). Μπορούμε να αφήσουμε μερικά στο γείτονα αν δε χωράνε στο δικό μας ντουλάπι. 42

Ένα τυπικό σύστημα NUMA Καθυστέρηση L1, L2, L3, local memory, remote cache, remote memory. 43

Μη ομοιόμορφη προσπέλαση μνήμης Characteristics of NUMA machines: There is a single address space visible to all CPUs (σημαντικό στοιχείο: Κοινός χώρος διευθύνσεων). Access to remote memory is via LOAD and STORE instructions. Access to remote memory is slower than access to local memory. 44

NonUniform Memory Access (NUMA) (a) A 256-node directory-based multiprocessor. (b) Division of a 32-bit memory address into fields. (c) The directory at node 36. 45

NonUniform Memory Access (NUMA) (1/2) Let us assume that each node has one CPU, 16 MB of ram and a cache. The total memory is 2 32 bytes, divided up into 2 26 cache lines (blocks) of 64 bytes each. The total memory is allocated among nodes, with 0-16 MB in node 0, 16-32 MB in node 1, and so on. Each node has a directory containing an entry for each of the 2 18 (262,144) 64-byte cache lines. Each directory entry is 9 bits (cache presence bit + 8 bits for a node number), so the total directory size is 2 18 * 9 = 2,359,296 bits = 294,912 bytes. We will assume that a cache line (memory block) is held in the cache of one node only (single copy). 46

NonUniform Memory Access (NUMA) (2/2) The directory of each node is kept in an extremely fast specialpurpose hardware, since directory must be queried on every instruction that references memory (so expensive). Παράδειγμα: Let us assume that CPU 20 references the address 0x24000108. This address corresponds node 36, block 4, offset 8 in decimal (Γιατί;). Node 20 sends a request message to node 36 to find whether block 4 is cached or not (NOT from Figure (c)). Node 36 fetches block 4 from it s local ram, sends it back to the to node 20, and updates the directory entry to indicate that the line is now cached at node 20. 47

Η αρχιτεκτονική μνήμης ccnuma 48

Αρχιτεκτονική ccnuma (1/3) Σχεδόν όλοι οι υπολογιστές έχουν μια τοπική cache εκτός από την τοπική μνήμη για να εκμεταλλευτούν την τοπικότητα της αναφοράς. Απαιτείται ένας μηχανισμός για τη συνέπεια μνήμης. Η εγκατάσταση μιας cache απαιτεί ειδικό εξοπλισμό προκειμένου να διατηρηθεί η συνάφεια της μνήμης. Έτσι δημιουργούνται οι υπολογιστές NUMA με συνάφεια κρυφής μνήμης (Cache Coherant NUMA). 49

Αρχιτεκτονική ccnuma (2/3) Για να διατηρηθεί η συνάφεια χρησιμοποιείται διαεπεξεργαστική επικοινωνία ανάμεσα στους ελεγκτές κρυφής μνήμης. Υπάρχει αρκετά μειωμένη απόδοση αν πολλαπλοί επεξεργαστές προσπαθούν να προσπελάσουν την ίδια περιοχή μνήμης σχεδόν την ίδια στιγμή. Τα λειτουργικά συστήματα που υποστηρίζουν NUMA προσπαθούν να ελαχιστοποιήσουν αυτές τις περιπτώσεις. Χρησιμοποιούνται ειδικά πρωτόκολλα συνάφειας μνήμης για να μειώνεται η επικοινωνία στο ελάχιστο. 50

Αρχιτεκτονική ccnuma (3/3) Εμπορικά παραδείγματα ccnuma: Συστοιχίες επεξεργαστών AMD Opteron. Συστοιχίες επεξεργαστών Intel Itanium. Απαιτείται ειδική υποστήριξη από το chipset (motherboard): SGI Shub. Intel E8870. HP sx2000. 51

CC-NUMA Origin 3000 (2000) 52

JUMP-1 (CC-NUMA) (1/2) 53

JUMP-1 (CC-NUMA) (2/2) 54

NUMA/συστοιχία υπολογιστών Η NUMA μπορεί να χαρακτηριστεί ως ένα είδος συστοιχίας υπολογιστών με πολύ ισχυρή ζεύξη. Η NUMA μπορεί να υλοποιηθεί εξολοκλήρου σε software ή σε hardware. Ασφαλώς η υλοποίηση με λογισμικό προκαλεί πάρα πολύ μεγάλη καθυστέρηση. 55

Ερωτήσεις αυτοαξιολόγησης (1/2) Ποιες είναι οι κατηγορίες των πολυεπεξεργαστών ως προς την αρχιτεκτονική μνήμης που διαθέτουν; Ποια είναι τα χαρακτηριστικά της κάθε κατηγορίας; Στα συστήματα UMA κοινού διαύλου ποιο στοιχείο προσδιορίζει το μέγιστο αριθμό επεξεργαστών; Τι ονομάζεται ανταγωνισμός μνήμης και που εμφανίζεται; Πως αντιμετωπίζεται; Η χρήση κρυφής μνήμης τι πρόβλημα δημιουργεί και πως αντιμετωπίζεται; Η λύση των πολλαπλών τμημάτων μνήμης επιλύει το πρόβλημα συνωστισμού/ανταγωνισμού; 56

Ερωτήσεις αυτοαξιολόγησης (2/2) Πως αντιμετωπίζεται ο συνωστισμός μνήμης σε συστήματα UMA με πολλαπλά τμήματα μνήμης. Δώστε ένα παράδειγμα. Από τι εξαρτάται η απόδοση ενός πολυεπεξεργαστή NUMA; 57

Η χρήση της διαμοιραζόμενης μνήμης μπορεί να γίνει σε διάφορα επίπεδα 58

Σελιδοποίηση Διαμοιραζόμενης μνήμης (1/3) (a) Pages of the address space distributed among four machines. When a CPU references an address that is not local, a trap occurs, and the DSM software fetches the page containing the address and restarts the faulting instruction. 59

Σελιδοποίηση Διαμοιραζόμενης μνήμης (2/3) 60

Σελιδοποίηση Διαμοιραζόμενης μνήμης (3/3) 61

NonUniform Memory Access (NUMA) Μη ομοιόμορφη προσπέλαση μνήμης Εμπορικά παραδείγματα: SGI Origin 3000, Cray T3E, AMD Opteron processor, Intel Itanium. 62

Η αρχιτεκτονική μνήμης COMA 63

Cache - Only Memory Architecture (COMA) (1/5) Σε αυτή την κατηγορία η κοινή μνήμη είναι η κρυφή (cache). Κάθε επεξεργαστής έχει άμεση πρόσβαση σε ένα τμήμα της κοινής μνήμης πιο αργή πρόσβαση στις απομακρυσμένες κρυφές μνήμες. Υπάρχει μια επιπλέον cache μνήμη (D) που συμβάλει την απομακρυσμένη πρόσβαση στις κρυφές. Υπάρχει ένας κοινός χώρος μνήμης (cache shared address). 64

Cache - Only Memory Architecture (COMA) (2/5) Η τοπική μνήμη κάθε κόμβου (πχ. DRAM) χρησιμοποιείται ως cache. Διαφέρει από την αρχιτεκτονική NUMA η οποία χρησιμοποιεί την τοπική μνήμη ως κανονική μνήμη. Στη ΝUMA κάθε διεύθυνση μνήμης αντιστοιχεί σε μια συγκεκριμένη διεύθυνση τοπικής μνήμης ενός κόμβου. Η αντιστοίχηση αυτή δεν αλλάζει ποτέ. Στην COMA η αντιστοίχηση αλλάζει. 65

Cache - Only Memory Architecture (COMA) (3/5) Μόλις απαιτηθεί πρόσβαση σε μια διεύθυνση που δεν είναι τοπική, έχει ως συνέπεια να μεταναστεύσει η αντίστοιχη γραμμή στην τοπική μνήμη του νέου κόμβου. Σε σύγκριση με τη NUMA αυτό ελαχιστοποιεί τον αριθμό των πλεοναζόντων αντιγράφων και επιτρέπει πιο αποδοτική χρήση των πόρων μνήμης. Υπάρχει όμως ένα σημαντικό πρόβλημα... 66

Cache - Only Memory Architecture (COMA) (4/5) Το σημαντικό πρόβλημα της COMA είναι πως να βρεθούν τα συγκεκριμένα δεδομένα (δεν υπάρχει ποια σταθερή αντιστοίχηση). Επίσης υπάρχει το πρόβλημα τι να γίνει αν γεμίσει η τοπική μνήμη από δεδομένα που έχουν μεταναστεύσει από άλλους κόμβους. Συνήθως χρησιμοποιούνται τεχνικές υλικού για συνάφεια μνήμης. Υπάρχουν υβριδικές αρχιτεκτονικές όπως NUMA-COMA (χρησιμοποιήθηκε στο Sun Wildfire). 67

Cache - Only Memory Architecture (COMA) (5/5) Εμπορικά Παράδειγμα: KSR 1, KSR 2 68

Διαφορές πολυ-υπολογιστών 69

Διαφορές σε Προγραμματισμό Οι πολυ-επεξεργαστές επικοινωνούν με μια κοινή μνήμη, οπότε οι προγραμματιστές χρησιμοποιούν σημαφόρους και άλλες κοινές δομές. Οι πολυ-υπολογιστές δεν έχουν κοινή μνήμη και η επικοινωνία γίνεται με πέρασμα μηνυμάτων. Πιο σύνθετος και δύσκολος. Πότε γίνεται η επικοινωνία, πως γίνεται. Πρέπει να λαμβάνεται υπόψη το δίκτυο διασύνδεσης. Η βασική μονάδα επικοινωνίας σε κάθε επεξεργαστή είναι το ΠΑΚΕΤΟ. 70

Οι πολυ-υπολογιστές χρησιμοποιούν πακέτα Το πακέτο επικοινωνίας έχει δυο τμήματα: Επικεφαλίδα. Κωδικός επεξεργαστή προορισμού. Μέγεθος μηνύματος. Αριθμό αναγνώρισης μηνύματος. Πεδίο ελέγχου. Δεδομένα. Αρχικά η επικοινωνία ήταν store-and-forward. Τώρα είναι circuit-switched message passing. (Ποια είναι και τι περιλαμβάνει η βασική μονάδα επικοινωνίας στους πολυ-υπολογιστές;;) 71

Δρομολόγηση σε δίκτυα Omega (1/2) Σε κάθε CPU αντιστοιχεί ένας δυαδικός αριθμός. Σε κάθε μνήμη αντιστοιχεί ένας δυαδικός αριθμός. Οι αριθμοί είναι ίδιου αριθμού ψηφίων. Για να επικοινωνήσει μια CPU με μια μνήμη, θα πρέπει να οργανωθούν κάποιοι διακόπτες κατάλληλα. Αν θα αλλάξει ένας διακόπτης σε κάθε επίπεδο, εξαρτάται από το αν είναι διαφορετικά τα bit σε αυτό το επίπεδο. Αν είναι θα αλλάξει, διαφορετικά δε θα αλλάξει. Π.χ. Ο cpu 011 για να συνδεθεί στη μνήμη 001 θα πρέπει: Στο πρώτο επίπεδο να μην αλλάξει ο διακόπτης. Στο δεύτερο επίπεδο να αλλάξει ο διακόπτης. Στο τρίτο επίπεδο να μην αλλάξει ο διακόπτης. 72

Δρομολόγηση σε δίκτυα Omega (2/2) Ο μεταγωγέας λοιπόν του σταδίου i τίθεται σε ευθεία αν si=ti (όπου η CPU έχει sn-1sn-2...s0 και η μνήμη tn-1tn-2...t0) διαφορετικά τίθεται σε ανταλλαγή. (Πως γίνεται η δρομολόγηση στο δίκτυο διασύνδεσης Ωμέγα; Δώστε ένα παράδειγμα) 73

Δρομολόγηση σε υπερκύβους Πως γίνεται η δρομολόγηση σε υπερκύβους; Γίνεται η πράξη XOR ανάμεσα στη διεύθυνση του στοιχείου αποστολέα και του στοιχείου παραλήπτη. Ο αριθμός που προκύπτει δείχνει αν πρέπει να γίνει μετακίνηση στο συζυγή υπερκύβο n-1 διαστάσεων ή όχι. Παράδειγμα. Αν ο επεξεργαστής 0011 θέλει να επικοινωνήσει με τον επεξεργαστή 1101 τότε 0011 XOR 1101 = 1110. δηλαδή αρχικά πρέπει να γίνει μετακίνηση στον αντίστοιχο επεξεργαστή του συζυγούς υπερκύβου n 1 = 3. κ.ο.κ. 74

Παράδειγμα δικτύου Ωμέγα με 8 κόμβους 75

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

Εύρεση παραλληλίας Σε προηγούμενη διάλεξη έγινε κατανοητό ότι πρέπει να βρεθεί ή να δημιουργηθεί η παραλληλία σε μια εφαρμογή προκειμένου να μπορεί να εκτελεστεί αποτελεσματικά σε ένα παράλληλο σύστημα. Πως βρίσκεται όμως η παραλληλία; 77

Που μπορεί να βρεθεί η παραλληλία σε μια εφαρμογή; 78

Τι είναι ένα γράφημα εξαρτήσεων; Γράφημα = (κόμβοι, βέλη). Για κάθε κόμβο: Εκχώρηση μεταβλητής (εκτός από τις μεταβλητές του δείκτη). Σταθερά. Χερισμός ή λειτουργία κλήσης. Τα βέλη δείχνουν τη χρήση των μεταβλητών και των σταθερών: Δεδομένα ροής. Έλεγχος ροής. Τα γραφήματα μας επιτρέπουν την οπτική αναπαράσταση των εξαρτήσεων, καθοδηγώντας μας στις αποφάσεις παραλληλοποίησης. 79

Παράδειγμα γράφου εξάρτησης 1 for ( i = 0; i < 3; i++) a[i] = b[i] / 2.0; 80

Εύκολα φαίνεται ότι μπορεί να παραλληλοποιηθεί με domain decomposition For (i = 0; i < 3; i++) Είναι δυνατόν με a[i] = b[i] / 2.0; Domain decomposition 81

Παράδειγμα γράφου εξάρτησης 2 for (i = 1; i < 4; i++) a[i] = a[i 1] * b[i]; 82

Δε μπορεί να γίνει παραλληλοποίηση με domain decomposition for (i = 1; i < 4; i++) a[i] = a[i 1] * b[i]; No domain decomposition 83

Παράδειγμα γράφου εξάρτησης 3 a = f(x, y, z); b = g(w, x); t = a + b; c = h(z); s = t / c; 84

Μπορεί να γίνει παραλληλοποίηση μέσω tasks a = f(x, y, z); b = g(w, x); t = a + b; c = h(z); s = t / c; Task Decomposition με 3 πυρήνες. Όμως, απαιτείται συγχρονισμός. 85

Παράδειγμα γράφου εξάρτησης 4 for ( i = 0; i < 3; i++) a[i] = a[i] / 2.0; Μπορεί να χρησιμοποιηθεί domain decomposition. Αν όμως έχουμε λίγο διαφορετικό κώδικα. 86

Παράδειγμα γράφου εξάρτησης 5 for ( i = 0; i < 3; i++) { a[i] = a[i] / 2.0; if (a[i] < 1.0) break; } Η εκτέλεση συνεχίζεται στην επόμενη επανάληψη, μόνο όταν δεν ισχύει η συνθήκη. Υπάρχουν συνθήκες ή εξαρτήσεις ελέγχου στον κώδικα. Δε μπορούμε να τραβήξουμε κατακόρυφες γραμμές. 87

(Αυτοαξιολόγηση) Πως μπορείτε να παραλληλοποιήσετε τα εξής: (1/2) Αλλαγή μεγέθους φωτογραφίας. Αναζήτηση ενός εγγράφου για όλες τις περιπτώσεις μιας λέξης. Ενημέρωση ενός υπολογιστικού φύλλου. Μεταγλωττίζοντας ένα πρόγραμμα. Προανάκληση σελίδων σε ένα πρόγραμμα περιήγησης στο Web. Χρησιμοποιώντας ένα πρόγραμμα επεξεργασίας κειμένου για να πληκτρολογήσετε μία αναφορά. 88

(Αυτοαξιολόγηση) Πως μπορείτε να παραλληλοποιήσετε τα εξής: (2/2) Αλλαγή μεγέθους φωτογραφίας (domain decomposition). Ψάχνοντας ένα έγγραφο (domain decomposition). Ενημέρωση ενός υπολογιστικού φύλλου (domain decomposition με συγχρονισμό). Μεταγλωττίζοντας ένα πρόγραμμα (task decomposition του κάθε ανεξάρτητου αρχείου). Προανάκληση σελίδων (task decomposition). Χρησιμοποιώντας ένα πρόγραμμα επεξεργασίας κειμένου (task decomposition). 89

Εύκολη/Δύσκολη παραλληλοποίηση Ευκολότερη Λύση Παραλληλοποίησης Πιο Δύσκολη ή Ακόμα και Αδύνατη Λύση Παραλληλοποίησης Μεγαλύτερα σύνολα δεδομένων Μικρότερα σύνολα δεδομένων Πυκνές μήτρες Αραιές μήτρες Διαιρώντας το διάστημα μεταξύ των πυρήνων Διαιρώντας τον χρόνο μεταξύ των πυρήνων 90

Συνεργασία παράλληλων διεργασιών Παραλληλοποίηση υπολογιστών -- πολλαπλές διεργασίες που συνεργάζονται ώστε να επιταχυνθεί η λύση μιας εργασίας. Συνεργασία -> συνεργασία διεργασίας. Τα είδη της συνεργασίας είναι: Ανταλλαγή πληροφοριών (επικοινωνία). Κρατώντας μακριά, του ενός από του άλλου δρόμου (συγχρονισμός). 91

Το μοντέλο αρχιτεκτονικής UMA 92

Αξιολογώντας τα μοντέλα παραλληλοποίησης Πώς ανταλλάσσουν πληροφορίες οι διεργασίες; Πώς συγχρονίζονται οι διεργασίες; Στο μοντέλο επιμερισμένης μνήμης, και τα δύο επιτυγχάνονται μέσα από κοινόχρηστες μεταβλητές. Επικοινωνία: buffer. Συγχρονισμός: semaphore. 93

Η μεθοδολογία παραλληλοποίησης Μελέτη προβλήματος, ακολουθιακό πρόγραμμα, ή τμήμα κώδικα. Αναζητήστε ευκαιρίες για παραλληλισμό. Χρησιμοποιήστε νήματα για να εκφράσετε τον παραλληλισμό. Τα νήματα είναι τμήματα των διεργασιών... 94

Τι είναι διεργασία; Ένα πρόγραμμα σε κάποια κατάσταση εκτέλεσής του: Κώδικας. Δεδομένα. Χώρος Λογικής διεύθυνσης. Πληροφορίες για το τι περιλαμβάνει μία διεργασία: Κατάσταση της διεργασίας. Μετρητή προγράμματος. Τιμές των καταχωρητών των πυρήνων. Μνήμη διαχείρισης πληροφοριών. 95

Τα νήματα είναι ελαφριές διεργασίες Μια μονάδα ελέγχου μέσα σε μια διεργασία -- Carver and Tai. Κύριο νήμα εκτελεί την βασική λειτουργία του προγράμματος. Κύριο νήμα μπορεί να δημιουργήσει άλλα νήματα ώστε να εκτελεί άλλες λειτουργίες. Τα νήματα έχουν δικό τους μετρητή προγράμματος, αντίγραφο των καταχωρητών του πυρήνα και στοίβα από εγγραφές δραστηριοποίησης. Τα νήματα μοιράζονται δεδομένα διεργασιών, κώδικα, χώρο διευθύνσεων, και άλλες πηγές. Τα νήματα έχουν χαμηλότερη επιβάρυνση από τις διεργασίες. Η διεργασία έχει πολύ μικρή επιβάρυνση δημιουργίας σε αντίθεση με τη διεργασία. 96

Τα νήματα είναι αρκετά ευέλικτα Νήματα τα οποία είναι αρκετά ευέλικτα ώστε να εφαρμοστούν: Domain decomposition. Task decomposition. Pipelining. 97

Domain Decomposition με νήματα 98

Task decomposition με νήματα 99

Pipeline και νήματα 100

Τα νήματα έχουν ιδιωτικές και κοινόχρηστες μεταβλητές 101

Παράδειγμα domain decomposition με νήματα (1/2) Ακολουθιακός Κώδικας: int a[1000], i; for ( i = 0; i < 1000; i++) a[i] = foo(i); 102

Παράδειγμα domain decomposition με νήματα (2/2) Ακολουθιακός Κώδικας: int a[1000], i; for ( i = 0; i < 1000; i++) a[i] = foo(i); Νήμα 0: for ( i = 0; i < 500; i++) a[i] = foo(i); Νήμα 1: for ( i = 0; i < 1000; i++) a[i] = foo(i); Το a[ ] πρέπει να είναι κοινόχρηστη μεταβλητή. Το i πρέπει να είναι ιδιωτική μεταβλητή. 103

Παράδειγμα task decomposition με νήματα (1/2) int e; main ( ) { int x[10], j, k, m; j = f(x,k); m = g(x, k);... } int f (int *x, int k) { int a; a = e * x[k] * x[k]; return a; } int g(int *x,int k) { int a; k = k 1; a = e /x[k]; return a; } 104

Παράδειγμα task decomposition με νήματα (2/2) int e; main ( ) { int x[10], j, k, m; j = f (x, k); m = g (x, k)... } int f (int *x, int k) Νήμα 0 { int a; a = e * x[k] * x[k]; return a; } int g (int *x, int k) Νήμα 1 { int a; k = k 1; a = e / x[k]; return a; } Τα e, x[ ] πρέπει να είναι κοινόχρηστες μεταβλητές. Τα k, a πρέπει να είναι ιδιωτικές μεταβλητές. Ενδεχομένως, το e μπορεί να είναι και static (καλύτερη απόδοση). 105

Σύνοψη: Ιδιωτικές και κοινόχρηστες μεταβλητές Κοινόχρηστες μεταβλητές: Στατικές μεταβλητές. Μεταβλητές σωρού. Περιεχόμενα του χρόνου εκτέλεσης της στοίβας κατά τη στιγμή της κλήσης. Ιδιωτικές μεταβλητές: Μεταβλητές δείκτη βρόχου. Χρόνος εκτέλεσης των λειτουργιών της στοίβας που επικαλείται από το νήμα. Χρησιμοποιήθηκε υλικό από Intro to Parallel Programming της Intel. 106

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