Parallel Architectures

Σχετικά έγγραφα
Parallel Architectures

Parallel Architectures

Parallel Architectures

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

Συνέπεια μνήμης σε πολυπύρηνα/πολυεπεξεργαστικά συστήματα

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

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

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Εργαςτιριο 1

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α

ςυςτιματα γραμμικϊν εξιςϊςεων

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 θ Διάλεξθ υγχρονιςμόσ Διεργαςιϊν

17. Πολυδιάςτατοι πίνακεσ

Ιδιότθτεσ πεδίων Γενικζσ.

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Σφςτημα Κεντρικήσ Υποςτήριξησ τησ Πρακτικήσ Άςκηςησ Φοιτητών ΑΕΙ

Η γλώςςα προγραμματιςμού C

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

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

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

Parallel Architectures

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

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του

Εισαγωγικές έννοιες. Αντώνησ Κ Μαώργιώτησ

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ

Πωσ δθμιουργώ φακζλουσ;

Παράςταςη ςυμπλήρωμα ωσ προσ 1

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων

ελ. 11/235, Περιεχόμενα Φακζλου "Σεχνικι Προςφορά"

ΒΙΟΛΟΓΟΙ ΓΙΑ ΦΥΣΙΚΟΥΣ

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

MySchool Πρακτικζσ οδθγίεσ χριςθσ

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

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

Είδθ των Cache Misses: 3C s

Υ- 07 Παράλληλα Συστήματα Συνχρονισμός, κρυφές μνήμες πολλαπλών επιπέδων

Shared Memory Multiprocessors. Πολυεπεξεργαστές Μοιραζόµενης

Τμήματα Μνήμησ Υπολογιςμόσ Φυςικών διευθύνςεων. Εκπαιδεφτρια: Μαρία Πολίτθ

Seventron Limited. Οδηγίες χρήσης EnglishOnlineTests.com

Υ07 Παράλληλα Συστήματα /11/2013 Οργάμωση κοιμής μμήμης (ΙΙ)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες)

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

ΠΑΝΕΠΙΣΘΜΙΟ ΔΤΣΙΚΘ ΜΑΚΕΔΟΝΙΑ ΣΜΘΜΑ ΜΘΧΑΝΙΚΩΝ ΠΛΘΡΟΦΟΡΙΚΘ ΚΑΙ ΣΘΛΕΠΙΚΟΙΝΩΝΙΩΝ. Λειτουργικά υςτιματα, 4 ο Εξάμθνο Ψθφιακι χεδίαςθ ΙΙ, 4 ο Εξάμθνο

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:

TIM Εικονικό Περιβάλλον Συνεργασίας Οδθγίεσ Χριςθσ

Πειραματικι Ψυχολογία (ΨΧ66)

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4

Μθχανολογικό Σχζδιο, από τθ κεωρία ςτο πρακτζο Χριςτοσ Καμποφρθσ, Κων/νοσ Βαταβάλθσ

Συγχρονισμός Μέρος Α : Κρίσιμο τμήμα και κλειδώματα

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β

8/3/2016 Οργάνωση κοινόχρηστης μνήμης (ΙΙ) Η λειτουργία της μνήμης

Processor-Memory (DRAM) Διαφορά επίδοςθσ

Οδηγίες αναβάθμισης χαρτών

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

9 ΕΞΑΙΡΕΕΙ - EXCEPTIONS

Εφαρμογέσ Μικροχπολογιςτών ςτισ Τηλεπικοινωνίεσ. Έλεγχοσ ςειριακήσ θφρασ του 8051 (Serial Port)

Αςφάλεια και Προςταςία Δεδομζνων

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

ΑΓΟΡΕ ΚΑΙ ΑΠΟΣΕΛΕΜΑΣΙΚΟΣΗΣΑ. Μεροσ ΙΙ

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

ΤΙΤΛΟΣ: "SWITCH-ΠΩ ΝΑ ΚΑΣΑΦΕΡΕΙ ΣΗΝ ΑΛΛΑΓΗ ΟΣΑΝ Η ΑΛΛΑΓΗ ΕΙΝΑΙ ΔΤΚΟΛΗ" Σσγγραφείς: Chip Heath & Dan Heath. Εκδόζεις: Κσριάκος Παπαδόποσλος/ΕΕΔΕ

ΡΑΝΕΛΛΘΝΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014 ΧΗΜΕΙΑ ΘΕΤΙΚΘΣ ΚΑΤΕΥΘΥΝΣΘΣ

ΦΥΕ 14 ΑΚΑΔ. ΕΤΟΣ Η ΕΡΓΑΣΙΑ. Ημερομηνία παράδοςησ: 12 Νοεμβρίου (Όλεσ οι αςκιςεισ βακμολογοφνται ιςοτίμωσ με 10 μονάδεσ θ κάκε μία)

Είςοδοσ/Εγγραφή ςτη διαχειριςτική ςελίδα του Σχολείου

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε)

Περιεχόμενα. χολι Χοροφ Αντιγόνθ Βοφτου - Πολιτικι Διαχείριςθσ Cookie 1

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox

Διδάςκων: Κωνςταντίνοσ τεφανίδθσ

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Αναφορά Εργαςίασ Nim Game

HY437 Αλγόριθμοι CAD

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

Ηλεκτρονικι Υπθρεςία Ολοκλθρωμζνθσ Διαχείριςθσ Συγγραμμάτων και Λοιπϊν Βοθκθμάτων

Εργαςτιριο Βάςεων Δεδομζνων

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 2 θ Διάλεξθ - Διεργαςίεσ

Αποτελζςματα Ζρευνασ για τθν Απαςχολθςιμότθτα ςτθν Ελλάδα

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.

Transcript:

Parallel Architectures Memory Consistency + Synchronization Figures, examples από 1. Transactional Memory, D. Wood, Lecture Notes in ACACES 2009 2. Krste Asanović s Lecture Notes, University of California, Berkeley. 1

Παράλληλεσ Αρχιτεκτονικζσ και Εφαρμογζσ Ραράλλθλεσ αρχιτεκτονικζσ (CMPs, SMPs, SMTs κτλ) Ιδανικζσ για παράλλθλεσ εφαρμογζσ Θ πλειοψθφία των εφαρμογϊν δθμιουργεί πολλαπλά threads που δουλεφουν κάτω από κοινι μνιμθ Κίνδυνοι με κοινι μνιμθ ςε παράλλθλεσ αρχιτεκτονικζσ: Φπαρξθ πολλαπλϊν αντιγράφων ςε διαφορετικά επίπεδα τθσ ιεραρχίασ μνιμθσ Coherence protocols = SOLVED! Ανάγκθ ςυγχρονιςμοφ Μεταφορά μοντζλων από uniprocessor systems 2

Συγχρονιςμόσ Θ ανάγκθ για ςυγχρονιςμό προκφπτει όποτε υπάρχουν ταυτόχρονεσ διεργαςίεσ ςε ζνα ςφςτθμα (ακόμα και ςε uniprocessor ςφςτημα) Μοντέλο παραγωγού καταναλωτή: ο καταναλωτισ κα πρζπει να περιμζνει μζχρι ο παραγωγόσ να παράξει δεδομζνα Αμοιβαίοσ αποκλειςμόσ: εξαςφαλίηει ότι μία μόνο διεργαςία μπορεί να χρθςιμοποιιςει ζναν κοινό πόρο ςε μια δεδομζνθ ςτιγμι 3

Παράδειγμα 1 A = flag = 0; Processor 0 Processor 1 A = 1; flag = 1; while (!flag); //spin print A; Τι μασ λζει θ διαίςθηςη: ο P1 τυπϊνει A=1 Τι μασ εγγυάται θ ςυνάφεια μνιμθσ: απολφτωσ τίποτα! απλά μασ εξαςφαλίηει ότι θ καινοφρια τιμι του Α κάποια ςτιγμή κα γίνει ορατι από τον P1 ο P1 μπορεί να δει τθν εγγραφι του flag πριν τθν εγγραφι ςτο Α! Ρϊσ;» τα μθνφματα του coherence protocol για τθν εγγραφι του Α μπορεί να κακυςτεριςουν κάπου ςτο δίκτυο διαςφνδεςθσ» ο write buffer του P0 μπορεί να αναδιατάςςει τισ εγγραφζσ Σε πραγματικά ςυςτιματα, ο παραπάνω κϊδικασ μπορεί να «δουλεφει» μερικζσ φορζσ, ενϊ άλλεσ όχι 4

Παράδειγμα 2 Producer posting Item x: Load R tail,(tail) Store (R tail ),x R tail =R tail +1 Store (tail),r tail Το πρόγραμμα είναι γραμμζνο με τθν υπόκεςθ ότι οι εντολζσ εκτελοφνται ςε ςειρά. Consumer: Load R head,(head) spin: Load R tail,(tail) if R head ==R tail goto spin Load R,(R head ) R head =R head +1 Store (head),r head consume(r) 5

Παράδειγμα 2 (2) Producer posting Item x: Load R tail,(tail) Store (R tail ),x R tail =R tail +1 Store (tail),r tail Ο tail pointer μπορεί να ανανεωθεί πριν την εγγραφή του x! Consumer: Load R head,(head) spin: Load R tail,(tail) if R head ==R tail goto spin Load R,(R head ) R head =R head +1 Store (head),r head consume(r) Ο προγραμματιςτισ υποκζτει ότι αν θ 3 πραγματοποιθκεί μετά τθ 2, τότε θ 4 πραγματοποιείται μετά τθν 1. Ρροβλθματικζσ ακολουκίεσ: o 2, 3, 4, 1 o 4, 1, 2, 3 6

Χρειαηόμαςτε ζνα μοντζλο ςειριοποίθςθσ για λειτουργίεσ μνιμθσ : Σε ίδιεσ ι διαφορετικζσ κζςεισ μνιμθσ Από ζνα ι πολλαπλά threads/processes Μοντζλο ςυνζπειασ μνιμθσ 7

Συνάφεια μνιμθσ (coherence): Memory Consistency διαςφαλίηει ότι θ τιμι τθσ τελευταίασ εγγραφισ ςε μια κζςθ μνιμθσ κα γνωςτοποιθκεί ςε όλουσ τουσ τυχόν αναγνϊςτεσ δθμιουργεί μια κακολικά ενιαία εικόνα για μία ςυγκεκριμζνθ κζςθ μνιμθσ (cache line, πρακτικά) δεν αρκεί:» 2 cache lines A και B μπορεί να είναι μεμονωμζνα ςυνεπείσ, αλλά αςυνεπείσ ςε ςχζςθ με τθ ςειρά που τροποποιικθκαν ςτο πρόγραμμα Συνζπεια μνιμθσ (consistency): κακορίηει το πότε κα γίνεται ορατι μια εγγραφι δθμιουργεί μια κακολικά ενιαία εικόνα για όλεσ τισ κζςεισ μνιμθσ, όςον αφορά τισ μεταξφ τουσ τροποποιιςεισ Απαραίτθτθ για τθ ςωςτι λειτουργία μθχανιςμϊν ςυγχρονιςμοφ 8

Μοντζλο Συνζπειασ Μνήμησ Ρεριορίηει τισ πικανζσ διατάξεισ με τισ οποίεσ οι λειτουργίεσ μνιμθσ μποροφν να εμφανιςτοφν θ μια ςε ςχζςθ με τθν άλλθ. Χωρίσ αυτι δεν μποροφμε να ποφμε τίποτα για το αποτζλεςμα τθσ εκτζλεςθσ ενόσ προγράμματοσ. Συνζπειεσ : Ο προγραμματιςτήσ αποφαςίηει για τθν ορκότθτα και τα πικανά αποτελζςματα Ο ςχεδιαςτήσ του ςυςτήματοσ περιορίηει πόςο μποροφν να αναδιατάςςονται οι λειτουργίεσ μνιμθσ από τον compiler ι το hardware. 9

Sequential Consistency A multiprocessor is sequentially consistent if the result of any execution is the same as if the operations of all the processors were executed in some sequential order, and the operations of each individual processor occur in this sequence in the order specified by its program. [Lamport, 1979] SC = τυχαία μίξθ των (εν ςειρά) αναφορϊν των ςειριακϊν προγραμμάτων ςτουσ επεξεργαςτζσ 10

Sequential Consistency (2) Σαν να μθν υπιρχαν κρυφζσ μνιμεσ, παρά μόνο μια μνιμθ. Κάκε επεξεργαςτισ δρομολογεί και ολοκλθρϊνει μια λειτουργία μνιμθσ ςφμφωνα με τθ ςειρά του προγράμματοσ Θ μνιμθ ικανοποιεί τισ προςπελάςεισ ςφμφωνα με κάποια ςειρά. Κάκε λειτουργία ςε αυτι τθ ςειρά φαίνεται ςα να εκτελείται και να ολοκλθρϊνεται ατομικά (πριν ξεκινιςουν οι επόμενεσ). 11

Sequential Consistency (3) Οριςμόσ program order Διαιςκθτικά θ ςειρά με τθν οποία εμφανίηονται οι εντολζσ ςτον πθγαίο κϊδικα. Θ ςειρά με τθν οποία εμφανίηονται οι λειτουργίεσ μνιμθσ ςτθν assembly που προκφπτει από απευκείασ μετατροπι του πθγαίου κϊδικα. Δεν είναι υποχρεωτικά θ ίδια ςειρά με αυτι που παράγει ο compiler και εκτελείται ςτο hardware Ζνασ optimizing compiler μπορεί να αναδιατάξει τισ εντολζσ του πθγαίου κϊδικα. Άρα θ ςειρά του προγράμματοσ εξαρτάται από το επίπεδο που κοιτάηουμε. Εμείσ υποκζτουμε τθ ςειρά ζτςι όπωσ τθ βλζπει ο προγραμματιςτισ. 12

Sequential Consistency (4) Ραράδειγμα Ρικανά αποτελζςματα για (Α,Β) : (0,0), (1,0), (1,2) Επιτρζπει θ SC το (0,2); Σφμφωνα με SC πρζπει 1a 1b και 2a 2b (program order). Αν Α = 0, τότε 2b 1a. Άρα και 2a 1a. Πμωσ Β = 2, μόνο αν 1b 2a! Επομζνωσ μθ επιτρεπτό αποτζλεςμα. 13

Sequential Consistency (5) Ανακεφαλαιϊνοντασ, για τθν SC ζχουμε 2 απαιτιςεισ. Program Order Οι λειτουργίεσ μνιμθσ ενόσ thread πρζπει να γίνονται ορατζσ (ςτουσ άλλουσ και ςτον εαυτό του) με τθ ςειρά που υπαγορεφει το πρόγραμμα. Atomicity Μια λειτουργία μνιμθσ ολοκλθρϊνεται προτοφ κλθκεί θ επόμενθ ςφμφωνα με τθν κακολικι ςειρά (ανεξάρτθτα από το ςε ποιο thead ανικει θ επόμενθ λειτουργία). 14

Write atomicity (1) Write atomicity Θ κζςθ όπου εμφανίηεται να εκτελείται ζνα write ςφμφωνα με τθν κακολικι ςειρά, πρζπει να είναι ίδια για όλα τα threads. Τίποτα από αυτά που κάνει ζνα thread αφοφ δει τθν καινοφρια τιμι που παράγει μια εγγραφι W δεν πρζπει να γίνει ορατό από τα υπόλοιπα threads πριν δουν και αυτά τθ W. Ουςιαςτικά, επεκτείνουμε τθν ςειριοποίθςθ εγγραφϊν που απαιτεί θ ςυνάφεια. Write serialization : Πλεσ οι εγγραφζσ ςε μια τοποκεςία κα πρζπει να εμφανίηονται ςε όλα τα threads με τθν ίδια ςειρά Write atomicity : Πλεσ οι εγγραφζσ ςε κάκε τοποκεςία κα πρζπει να εμφανίηονται ςε όλα τα threads με τθν ίδια ςειρά 15

Write atomicity (2) Ζςτω ότι επιτρζπουμε ςτον P2 να προχωριςει ςτο B=1 πριν θ εγγραφι του Α γίνει ορατι από τον P3. Μπορεί ο P3 να διαβάςει τθν παλιά τιμι του Α και τθν καινοφρια του Β; Ραραβίαςθ τθσ SC! 16

Relaxed Consistency Models (1) Θ SC είναι πολφ αυςτθρι Απαγορεφει Architectural enhancements (ooo, write buffering, ) Compiler optimizations (reordering, register allocation, ) Δθμιουργία relaxed models επιτρζπουν τθν αναδιάταξθ Loads και Stores ςε διαφορετικζσ διευκφνςεισ χρειάηεται να παρζχουν memory fence εντολζσ ςτουσ προγραμματιςτζσ προκειμζνου να επιβάλλουν μια επικυμθτι ςειρά ςτθν εκτζλεςθ των λειτουργιϊν μνιμθσ 17

Παράδειγμα 2: Relaxed Consistency με Fences Producer posting Item x: Load R tail,(tail) Store (R tail ),x Fence SS R tail =R tail +1 Store (tail),r tail εγγυάται ότι ο tail pointer δε θα ανανεωθεί πριν την εγγραφή του x εγγυάται ότι ο R δε θα φορτωθεί πριν την εγγραφή του x Consumer: Load R head,(head) spin: Load R tail,(tail) if R head ==R tail goto spin Fence LL Load R,(R head ) R head =R head +1 Store (head),r head consume(r) 18

Relaxed Consistency Models (2) Μποροφμε να οργανϊςουμε τα μοντζλα ςε 3 διαφορετικζσ κατθγορίεσ 1. Επιτρζπεται ςε ζνα Load να ολοκλθρωκεί προτοφ ολοκλθρωκεί κάποιο προθγοφμενο (ςφμφωνα με το program order) Store. Total Store Order (TSO), Processor Consistency (PC) (e.g., IBM 370, Sparc TSO, Intel IA-32) 2. Επιτρζπεται και ςε ζνα Store να προςπεράςει κάποιο προθγοφμενο (ςφμφωνα με το program order) Store. Partial Store Order (PSO) (e.g., Sparc PSO) 3. Επιτρζπεται ςε ζνα Load ι ζνα Store να προςπεράςει κάποια προθγοφμενθ (ςφμφωνα με το program order) λειτουργία μνιμθσ, είτε Load είτε Store. Weak Ordering (WO), Release Consistency (RC), Relaxed Memory Order (RMO) (e.g., Sparc RMO, Alpha, PowerPC) 19

Relaxing Write-to-Read Order Αντιμετϊπιςθ τθσ κακυςτζρθςθσ για writes που κάνουν miss ςτθν L1 cache. Πςο το write είναι ςτο write buffer, ο επεξεργαςτισ ολοκλθρϊνει reads που κάνουν hit ςτθν cache. Καταργείται θ ςυνκικθ τθσ SC ότι όλεσ οι αναφορζσ πραγματοποιοφνται ςτθ ςειρά προγράμματοσ A = Β = 0 P0 P1 A = 1; B = 1; r1 = B; r2 = A; επιτρζπει r1 == r2 == 0 (δεν το επιτρζπει θ SC) 20

Relaxing Write-to-Read & Write-to-Write Order Κίνθτρο : Ρεραιτζρω μείωςθ τθσ κακυςτζρθςθσ εξαιτίασ ενόσ write miss και βελτίωςθ τθσ επικοινωνίασ μεταξφ των επεξεργαςτϊν κάνοντασ ορατζσ τισ καινοφριεσ τιμζσ νωρίτερα. Επιτρζπεται το merging πολλαπλϊν writes που βρίςκονται ςτο write buffer. Τα writes μπορεί να γίνουν ορατά εκτόσ ςειράσ! 21

Γιατί να μην χαλαρώςουμε όλουσ τουσ περιοριςμοφσ; ΟΚ αν μποροφμε να αναδιατάξουμε τα ηεφγθ Α=1/Β=1 ι r1=a/r2=b μζςω OoO επεξεργαςτϊν, non-fifo write buffers, κακυςτεριςεισ ςτο δίκτυο διαςφνδεςθσ, κ.λπ. Πμωσ ο προγραμματιςτισ ςτθρίηεται ςτα εξισ για τθν ορκότθτα του προγράμματοσ: A=1/B=1 προτοφ flag=1 flag!=0 προτοφ r1=a/r2=b 22

Relaxing All Memory Orders Κίνθτρο : Πταν μασ ενδιαφζρει θ ςειρά των λειτουργιϊν, τα παράλλθλα προγράμματα χρθςιμοποιοφν ςυγχρονιςμό. Επομζνωσ, μποροφμε χαλαρϊςουμε όλουσ τουσ περιοριςμοφσ για τισ λειτουργίεσ πριν και μετά τισ λειτουργίεσ ςυγχρονιςμοφ. Weak Ordering (WO) : Ξεχωρίηει μεταξφ κανονικϊν λειτουργιϊν και λειτουργιϊν ςυγχρονιςμοφ. Release Consistency (RC) : Επεκτείνει το WO, διακρίνοντασ τισ λειτουργίεσ ςυγχρονιςμοφ ςε acquire και release (επιτρζποντασ καλφτερθ επικάλυψθ των λειτουργιϊν) 23

Weak Ordering vs Release Consistency WO RC 24

#LoadLoad #StoreLoad #LoadStore #StoreStore Παράδειγμα: Sparc V9 memory fences Logical or-ed combinations possible #XY = All X operations that appear before the memory fence in program order complete before any Y operations that follow after the memory fence in program order. (+) Ευελιξία όςον αφορά τθν βζλτιςτθ εκμετάλλευςθ του εκάςτοτε relaxed consistency model για μζγιςτθ απόδοςθ (-) Ρρογραμματιςτικά δφςκολθ + ηθτιματα μεταφερςιμότθτασ ανάμεςα ςε διαφορετικά models 25

Relaxed Consistency Models (3) Hardware optimizations H χριςθ buffers επιτρζπει ςτον επεξεργαςτι να μθ κάνει stall εφόςον οι τοπικζσ εξαρτιςεισ δεδομζνων διατθροφνται. Το hardware πρζπει να μπορεί να ξεχωρίςει ποιεσ προςβάςεισ ςτθ μνιμθ γίνονται για ςυγχρονιςμό και ποιεσ όχι. Software optimizations Αναδιάταξθ των εντολϊν μεταξφ των ςθμείων ςυγχρονιςμοφ. Επιτρζπονται compiler optimizations όπωσ register allocation. Το πρόγραμμα πρζπει να περιζχει τα κατάλλθλα annotations και τυχόν memory races να επιλφονται με χριςθ ςυγχρονιςμοφ. Ροιο είναι το πρόβλθμα με τθν RC; Τα παράλλθλα προγράμματα κα ζχουν απροςδιόριςτθ ςυμπεριφορά αν εκτελεςτοφν ςε ζνα consistency model διαφορετικό από αυτό για το οποίο ζχουν γραφτεί 26

Sequential Consistency Consistency Models Οι λειτουργίεσ μνιμθσ πρζπει να ολοκλθρϊνονται με βάςθ τθ ςειρά του προγράμματοσ. Θ κακυςτζρθςθ μπορεί να μειωκεί ίςωσ με χριςθ speculation. Δεν επιτρζπονται τα περιςςότερα compiler optimizations x86, ARM : not SC. TSO & PC Επιτρζπεται θ χριςθ write buffers. Δεν επιτρζπονται και πάλι τα περιςςότερα compiler optimizations. WO & RC Επιτρζπεται θ χριςθ read και write buffers. Επιτρζπονται compiler optimizations μεταξφ των ςθμείων ςυγχρονιςμοφ. Το πρόγραμμα πρζπει να περιζχει τα κατάλλθλα annotations για να εκτελεςτεί ςωςτά. 27

Η ανάγκη για ςυγχρονιςμό Αρκοφν τα coherence protocols και τα consistency models για να μασ εξαςφαλίςουν ςωςτι ςθμαςιολογία ςτθν παράλλθλθ εκτζλεςθ ενόσ προγράμματοσ; 28

Η ανάγκη για ςυγχρονιςμό (2) Υπόκεςθ: write-back caches (κα μποροφςε όμωσ και writethrough ) + MSI protocol Τι ςυνζβθ; πάντωσ το coherence protocol λειτοφργηςε ςωςτά 29

Η ανάγκη για ςυγχρονιςμό (3) Τι ςυνζβθ ςτθν πραγματικότθτα; διαιςκθτικά, θ πρόςβαςθ (=read + modify + write) ςτον accts[241].bal κα πρζπει να γίνεται ατομικά» οι δοςολθψίεσ δε κα πρζπει να επικαλφπτονται μεταξφ τουσ» όμωσ αυτό ακριβϊσ ζγινε! λφςθ: ςυγχρονιςμόσ προςβάςεων ςτον accts[241].bal 30

Συγχρονιςμόσ υκμίηει τθν πρόςβαςθ ςε μοιραηόμενα δεδομζνα Κρίςιμη περιοχή (critical section): όλεσ οι λειτουργίεσ εντόσ αυτισ κα πρζπει να γίνονται ατομικά, ςαν μία ενιαία και αδιαίρετθ λειτουργία Ρϊσ; αμοιβαίοσ αποκλειςμόσ» locks, semaphores, monitors atomic instructions non-blocking μθχανιςμοί 31

Αμοιβαίοσ αποκλειςμόσ Επιτρζπει τθν είςοδο ςτθν κρίςιμθ περιοχι μίασ διεργαςίασ κάκε φορά Locks acquire(lock), release(lock) δεφτερθ προςπάκεια για acquire (από άλλθ ι και τθν ίδια διεργαςία) ενϊ δεν ζχει γίνει release, κα μπλοκάρει τθν εκτζλεςθ Ηθτοφμενο: το acquire να γίνεται κι αυτό ατομικά! 32

Spin-lock ( Test-And-Set ) Ρολλζσ αρχιτεκτονικζσ παρζχουν εντολζσ για atomic lock acquisition Ραράδειγμα: test-and-set» t&s r1, 0(&lock) Εκτελεί ατομικά: mov r1,r2 ld r1,0(&lock) st r2,0(&lock)» Αν το lock ιταν ελεφκερο (=0), το δεςμεφει (το κζτει ςε 1)» Αν το lock ιταν δεςμευμζνο (=1), δεν το αλλάηει Acquire sequence: Ραρόμοιεσ εντολζσ: swap, compare & swap, exchange, fetchand-add 33

Ορθότητα Test-and-Set Lock O P1 ςυνεχίηει να κάνει spin πάνω ςτο lock 34

Απόδοςη Test-and-Set Lock επθρεάηοντασ αρνθτικά όμωσ τθν απόδοςθ ζςτω ότι ζχουμε 3 επεξεργαςτζσ αντί για 2 ο P0 ζχει το lock και είναι εντόσ τθσ κρίςιμθσ περιοχισ τι κάνουν οι P1, P2 ςτο ενδιάμεςο;» εκτζλεςθ πολλϊν επαναλιψεων του t&s loop, κάκε μία εκ των οποίων περιλαμβάνει και ζνα store» ο ζνασ ακυρϊνει ςυνεχϊσ τθν cache line του άλλου, παράγοντασ ιδιαίτερα αυξθμζνθ (και μθ χριςιμθ) κίνθςθ ςτο δίαυλο 35

Test-and-Test-and-Set Locks Σκεπτικό: αντί μία διεργαςία να γράφει «τυφλά» ςτο lock μζςω t&s, να παρακολουκεί απλά τθν τιμι του και μόνο όταν φαίνεται να είναι ελεφκερο να επιχειρεί να το δεςμεφςει Acquire sequence: Μζςα ςε κάκε επανάλθψθ του loop, πριν γίνει ζνα t&s: επαναλθπτικά ελζγχουμε (load) να δοφμε αν θ τιμι του lock ζχει αλλάξει εκτελοφμε το t&s (store) όταν το lock (φαίνεται να) είναι ελεφκερο Οι επεξεργαςτζσ κάνουν spinning τοπικά ςτθν cache τουσ Λιγότερθ άχρθςτθ κίνθςθ ςτο δίαυλο 36

Απόδοςη Test-and-Test-and-Set Lock Ο P0 κάνει release το lock, και κάνει invalidate τθν αντίςτοιχθ cache line ςτουσ P1, P2 Οι P1, P2 ανταγωνίηονται για τθν απόκτθςθ του lock, ο P1 κερδίηει CONSISTENCY??? 37

Atomic Instructions Ρολλζσ αρχιτεκτονικζσ παρζχουν τθ δυνατότθτα ατομικισ εκτζλεςθσ για ςυγκεκριμζνεσ εντολζσ όλεσ οι επιμζρουσ λειτουργίεσ που κάκε τζτοια εντολι περιλαμβάνει εκτελοφνται ςαν ζνα ενιαίο ςφνολο ςυνικωσ πρόκειται για Read-Modify-Write λειτουργίεσ π.χ. x86 INC, DEC, NOT, ADD, SUB, AND, OR, XOR, (με LOCK prefix) XCHG, CMPXCHG, int cmpxchg(int *p, int v1, int v2) { //atomically int oldval = *p; if (oldval == v1) *p = v2; return oldval; } ςτα παλιότερα μοντζλα υλοποιοφνται με κεντρικό κλείδωμα του bus (#LOCK signal) ςτα νεότερα μοντζλα, κλειδϊνονται μόνο οι caches που περιζχουν τα αντίςτοιχα δεδομζνα (αν τα περιζχουν) (+) Γενικά, πολφ πιο αποδοτικζσ ςε ςχζςθ με τα locks (-) Κατάλλθλεσ για απλζσ λειτουργίεσ (π.χ. RMW), αλλά όχι για πιο ςφνκετεσ 38