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

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

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

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

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

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

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

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

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

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

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης

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

Σειρά Ασκήσεων 13: Συνοχή (Coherence) Κρυφών Μνημών, Προχωρημένοι Επεξεργαστές (Out-of-Order, Superscalar, Multithreading, Multicores)

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες

Υ- 07 Παράλληλα Συστήματα Συνοχή κρυφής μνήμης με σύστημα καταλόγων

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

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

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

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

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

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

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

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

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

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Υ- 07 Παράλληλα Συστήματα Transac9onal memory

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

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

Τεχνολογίες Κύριας Μνήμης

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

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

ΠΛΕ- 027 Μικροεπεξεργαστές

Οργάνωση Ιεραρχίας Μνήμης - Caches

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

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

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

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

Caches for Parallel Architectures. (Coherence)

ΕΠΛ 605: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018 ΕΡΓΑΣΙΑ 3 (13/10/2018) Ηµεροµηνία Παράδοσης δεύτερου µέρους: 18/10/2018

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

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Ιεραρχία μνήμης: προχωρημένα θέματα

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789

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

Συνάφεια Κρυφής (Λανθάνουσας) Μνήµης- -Συνέπεια Μνήµης (Cache Coherence-Memory Consistency)

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

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

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

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

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

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1

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

Ασκήσεις Caches

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Άσκηση 1η. Θεωρήστε ένα σύστημα μνήμης με μία cache: 4 way set associative μεγέθους 256ΚΒ,

Caches for Parallel Architectures

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

3 η ΑΣΚΗΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ

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

Θέµατα Φεβρουαρίου

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

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

Chapter 4 ( ή 1 στο βιβλίο σας)

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

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

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

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής

Διάλεξη 14 Εισαγωγή στην Ιεραρχία Μνήμης

Πολυεπεξεργαστές Κοινόχρηστης Μνήμης & Multi-cores. Κεφάλαιο ΙΙ

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

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

Ασκήσεις Caches

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

Transcript:

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 11ο μάθημα: πολυπύρηνοι επεξεργαστές, μέρος 1 Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου

Παράλληλη επεξεργασία Στο προηγούμενο μάθημα είδαμε τα όρια της παραλληλίας επιπέδου εντολής Σήμερα: «πραγματική» παράλληλη επεξεργασία επιπέδου νήματος Παράγοντες μικρό επιπλέον όφελος από ILP για μεγάλο κόστος μεγαλύτερη ζήτηση για εξυπηρετητές data- intensive εφαρμογές καλύτερη κατανόηση λειτουργίας πολυεπεξεργαστών εκμετάλευση επιφάνειας πυριτίου με πολλαπλά αντίγραφα πυρήνων αντί για μεγαλύτερους πυρήνες 2

Ταξινόμηση κατά Flynn Single instruc]on, single data stream (SISD) Μονοεπεξεργαστής Single instruc]on, mul]ple data streams (SIMD) Εκμετάλευση παραλληλισμού δεδομένων Vector processors, mul]media extensions Mul]ple instruc]ons, single data stream (MISD) Δεν υπάρχει! Mul]ple instruc]ons, mul]ple data streams (MIMD) Τυπικοί πολυεπεξεργαστές Εκμετάλευση παραλληλισμού νήματος 3

Είδη παράλληλων υπολογιστών Commodity Clusters (συστάδες) χρησιμοποιούν κοινά εξαρτήματα (επεξεργαστές,...) και δίκτυα μικρό κόστος Custom clusters ειδικευμένα εξαρτήματα, συνήθως για το δίκτυο επικοινωνίας οι σημερινοί υπερυπολογιστές Πολυπύρηνοι επεξεργαστές (mul]- cores) πολλαπλοί επεξεργαστές (πυρήνες) σε ένα Ο.Κ. συχνά μοιράζονται κάποιους πόρους (π.χ. επίπεδα κρυφής μνήμης) 4

Κεντρική μοιραζόμενη μνήμη centralized shared memory για σχετικά περιορισμένο αριθμό πυρήνων συμμετρία ώς προς τη προσπέλαση μνήμης (unified memory access) symmetric (shared memory) mul]processors (SMP) Processor Processor Processor Processor One or more levels of cache One or more levels of cache One or more levels of cache One or more levels of cache Private caches Shared cache Main memory I/O system 5

Κατανεμημένη μνήμη Απαραίτητη οργάνωση για μεγάλα συστήματα Cost- effec]ve way to scale memory bandwidth Reduced latency for local memory access Multicore MP Multicore MP Multicore MP Multicore MP Memory I/O Memory I/O Memory I/O Memory I/O Interconnection network Memory I/O Memory I/O Memory I/O Memory I/O Multicore MP Multicore MP Multicore MP Multicore MP 6

Μέθοδοι επικοινωνίας Ανταλλαγή μηνυμάτων (message passing) Κοινόχρηστη μνήμη (shared memory) Ολη η (φυσική) μνήμη του συστήματος ανήκει σε ένα address space κάθε πυρήνας μπορεί να προσπελάσει οποιαδήποτε διεύθυνση ο χρόνος προσπέλασης μπορεί να είναι διαφορετικός (non uniform memory access NUMA) Ξεχωριστά address spaces επικοινωνία με μηνύματα 7

Προβλήματα παράλληλης επεξεργασίας Περιορισμένος παραλληλισμός εφαρμογής νόμος του Amdahl Χρειάζεται διαφορετικός αλγόριθμος Μεγάλη καθυστέρηση συστήματος επικοινωνίας όπως η μνήμη είναι πιο αργή από τους επεξεργαστές... 8

Παράδειγμα: Νόμος Amdahl Αν έχουμε ένα σύστημα με 100 πυρήνες και θέλουμε να πετύχουμε 80πλασιασμό της ταχύτητας σε σύγκριση με σειριακό πρόγραμμα, πόσο ποσοστό του προγράμματος μπορεί να είναι σειριακό? Speedup = Λύνουμε ως προς Frac]on enhanced Αποτέλεσμα: 0.9975, δηλαδή μόνο το 0.25% του προγράμματος θα πρέπει να είναι σειριακό 1 Fraction enhanced Speedup enhanced (1 Fraction enhanced ) 9

Παράδειγμα: κόστος καθυστέρησης Σύστημα με πυρήνες 2 GHz CPI=0.5 όταν όλες οι προσπελάσεις είναι hit 200ns καθυστέρηση πρόσβασης σε απομακρυσμένη μνήμη Αν 0.2% των εντολών προσπελαύνουν απομακρυσμένη μνήμη, πόσο πιο αργό είναι το σύστημα? 10

Λύση Κόστος απομακρυσμένης προσπέλασης 200ns/0.5ns = 400 κύκλοι ρολογιού CPI = Base CPI + Remote rate * remote cost = 0.5+0.002*400 = 0.5+0.8 = 1.3 Διαφορά ταχύτητας 1.3/0.5 = 2.6 Το σύστημα είναι 2.6 φορές πιο αργό από ένα σύστημα που δεν χρειάζεται απομακρυσμένες προσπελάσεις 11

Shared memory & caches Οι caches είναι πλεον απαραίτητες η καθυστέρηση μνήμης είναι τεράστια χωρίς αυτές Χρησιμοποιείται και για private data και για shared data Τα 2 α μπορεί να μοιράζονται, αλλά εξακολουθούν να έχουν τοπικότητα αναφορών διαχειρίζονται από ένα πυρήνα για αρκετό χρόνο πριν «ζητηθούν» από άλλους Κάθε πυρήνας «βλέπει» το σύστημα μνήμης μέσω τις δικής του cache οι όψεις μπορεί να είναι διαφορετικές για τα ίδια δεδομένα! cache coherence problem 12

Cache coherence problem 13

Cache coherence Ατυπα: το σύστημα μνήμης επιστρέφει τη πιο πρόσφατη τιμή Διατήρηση σειράς προγράμματος: Write P (x), Read P (x), χωρίς ενδιάμεσες εγγραφές στο x, η Read επιστρέφει τη τιμή που έγραψε η Write Write A (x), Read B (x) χωρίς ενδιάμεσες εγγραφές στο x και με αρκετή διαφορά στο χρόνο, η Read επιστρέφει τη τιμή της Write Write serializa]on: Δύο εγγραφές στην ίδια θέση από 2 πυρήνες θα εμφανιστούν με την ίδια σειρά σε όλους τους πυρήνες π.χ. πρώτα 1 μετά 2. Δεν θα πρέπει ένας πυρήνας να μπορεί να διαβάσει πρώτα 2 και μετά 1. 14

Memory consistency Εκτός από τις προηγούμενες ιδιότητες μάς ενδιαφέρει και το πότε ένας πυρήνας «βλέπει» τις αλλαγές Η memory consistency καθορίζει πως συμπεριφέρονται προσπελάσεις στη μνήμη σε σχέση με προσπελάσεις σε διαφορετικές διευθύνσεις για την ίδια διεύθυνση είναι coherence Θα εξεταστεί αργότερα... Μέχρι τότε: μία write δεν ολοκληρώνεται μέχρι όλοι οι πυρήνες να «βλέπουν» την αλλαγή οι πυρήνες δεν αλλάζουν τη σειρά των write σε σχέση με άλλες προσπελάσεις μνήμης 15

Coherent caches Για μοιραζόμενα δεδομένα οι coherent caches παρέχουν migra]on τα δεδομένα μεταφέρονται εκεί που χρειάζονται ο χρόνος προσπέλασης μειώνεται replica]on τα δεδομένα αντιγράφονται χρήσιμο για δεδομένα που κυρίως διαβάζονται μειώνεται ο χρόνος προσπέλασης και οι απαιτήσεις σε bandwidth Τα παραπάνω γίνονται αυτόματα αλλά όπως και στις απλές caches, υπάρχουν προβληματικές περιπτώσεις 16

Πρωτόκολλα cache coherence Δύο κύριες κατηγορίες: Snooping (snoopy) κάθε cache κρατάει πληροφορίες σχετικά με τη κατάσταση των γραμμών της κάθε cache παρακολουθεί τις υπόλοιπες μέσω των μηνυμάτων που εκπέμπουν (broadcast) σε ένα κατάλληλο μέσο, π.χ. bus Directory based οι πληροφορίες (ποιές caches έχουν ποιά γραμμή και σε τί κατάσταση) κρατούνται σε ένα κατάλλογο Θα εξετάσουμε directory- based πρωτόκολλα στο επόμενο μάθημα 17

Παραλλαγές snooping Πριν ένας πυρήνας γράψει μια γραμμή cache πρέπει να είναι σίγουρος ότι έχει το αποκλειστικό αντίγραφο (exclusive copy) Εξασφαλίζεται ακυρώνοντας (invalidate) όλα τα υπόλοιπα αντίγραφα χρειάζεται να εκπέμψει ένα σχετικά σύντομο μήνυμα Κάθε εγγραφή εκπέμπεται σε όλες τις cache περισσότερη «κίνηση» στο bus δεν χρησιμοποιείται σε σύγχρονους πολυεπεξεργαστές 18

Υλοποίηση Εγγραφές: εκπομπή μηνύματος ακύρωσης αν άλλος πυρήνας ταυτόχρονα ζητά ακύρωση, όποιος «κερδίσει» τη πρόσβαση (arbitra]on) στο δίαυλο, πραγματοποιεί την ακύρωση Εύρεση μιας γραμμής μετά από miss Αν οι cache είναι write- through, η γραμμή είναι στη μνήμη Διαφορετικά, χρειάζεται συμμετοχή από τις υπόλοιπες cache Οταν μία cache δει (snoop) στο δίαυλο ένα αίτημα για μια γραμμή που είναι dirty τοπικά, πρέπει να «προλάβει» τη μνήμη και να απαντήσει αυτή Τα Tags της cache χρησιμοποιούνται και απο το πυρήνα και για snooping εκτός από το valid bit συχνά χρησιμοποιούνται περισσότερα bit κατάστασης 19

Απλό snooping πρωτόκολλο CPU read hit Write miss for this block Invalid CPU read Place read miss on bus Shared (read only) Invalid Invalidate for this block Shared (read only) Place write miss on bus CPU write Exclusive (read/write) CPU read miss Write-back block Place read miss on bus Place write miss on bus Place invalidate on bus CPU write CPU write miss Cache state transitions based on requests from CPU Place read miss on bus CPU read miss Write miss for this block Write-back block; abort memory access Exclusive (read/write) Write-back block; abort memory access Read miss for this block CPU read miss Cache state transitions based on requests from the bus CPU write miss CPU write hit CPU read hit Write-back cache block Place write miss on bus 20

Πρωτόκολλα snooping Υλοποίηση πολύ δυσκολότερη από ότι φαίνεται! Μπορεί να χρειαστούν αρκετοί κύκλοι για detect miss, acquire bus, receive a response Πιθανό να συμβούν deadlocks ή/και races Υπάρχουν πολλές παραλλαγές Πρωτόκολλο MESI: κατάσταση Exclusive όταν μια γραμμή διαβάζεται πρώτη φορά από το σύστημα 21

Απόδοση κρυφής μνήμης Το μοιρασμα δεδομένων επηρεάζει την επίδοση του συστήματος μνήμης Ακυρώσεις γραμμών που οδηγούν σε αστοχίες Το 4 ο C στις caches Coherence misses (cold/compulsory, capacity, conflict) True sharing misses 1 η εγγραφή μιας μοιραζόμενης γραμμής πρέπει να ακυρώσει όλα τα άλλα αντίγραφα 1 η ανάγνωση από άλλους πυρήνες είναι miss (το προηγούμενο αντίγραφο ακυρώθηκε) 22

False sharing Το valid bit ισχύει για ολόκληρη τη γραμμή cache Αν οι λέξεις που γράφονται/διαβάζονται από διαφορετικούς πυρήνες είναι διαφορετικές έχουμε false sharing και οι γραμμές ακυρώνονται αν και δεν υπάρχει πρόβλημα cache coherence true sharing miss false sharing miss: το Read x2 είχε «υποβιβάσει» το αντίγραφο του P1 σε κατάσταση shared. Σε κάποια πρωτόκολλα αντί για write miss γίνεται upgrade miss, ακυρώνει τη γραμμή σε άλλες cache αλλά δε μεταφέρονται δεδομένα. 23

Commercial workload 3 μετροπρογράμματα: On- line transac]on- processing workload (OLTP) TPC- B πιο συχνά χρησιμοποιείται το TPC- C Decision support system (DSS) workload based on TPC- D Web index search (AltaVista) Σύστημα: 4- πύρηνο σύστημα AlphaServer 4100 3 επίπεδα cache L3 off- chip 2MB, 64B, dm OLTP έχει τη χειρότερη επίδοση (CPI=7) Percentage of execution time 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% OLTP DSS AltaVista Other stalls Memory access L3 access L2 access Instruction execution 24

OLTP 100 Normalized execution time 90 80 70 60 50 40 30 20 10 Idle PAL code Memory access L2/L3 cache access Instruction execution 0 1 2 4 8 L3 cache size (MB) 25

Cache misses (L3) classifica]on 3.25 3 Memory cycles per instruction 2.75 2.5 2.25 2 1.75 1.5 1.25 1 0.75 0.5 0.25 Instruction Capacity/conflict Compulsory False sharing True sharing 0 1 2 4 8 Cache size (MB) 26

OLTP scaling number of cores Memory cycles per instruction 3 2.5 2 1.5 1 0.5 Instruction Capacity/conflict Compulsory False sharing True sharing 0 1 2 4 6 8 Processor count 27

OLTP Block size effect Misses per 1000 instructions 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Instruction Capacity/conflict Compulsory False sharing True sharing 32 64 128 256 Block size (bytes) 28

Mul]programming & OS workload Compile phases of Andrew benchmark emulates so ware development (parallel make) compile benchmarks, install object files in library, remove object 2 level cache 32KB L1 1MB L2 unified Θα δούμε τις διαφορές μεταξύ κώδικα χρήστη και OS 29

Mul]programming results 7% 6% 5% Kernel miss rate 10% 9% 8% 7% Miss rate 4% 3% Miss rate 6% 5% 4% Kernel miss rate 2% 3% 1% User miss rate 2% 1% User miss rate 0% 32 64 128 256 Cache size (KB) 0% 16 32 64 128 Block size (bytes) Σε κατάσταση χρήστη εκτελούνται 8 φορές περισσότερες εντολες Το kernel έχει περισσότερα misses 30

Kernel misses breakdown 7% 6% 5% 10% 9% 8% 7% Capacity/conflict Coherence Compulsory Miss rate 4% 3% Miss rate 6% 5% 4% 2% 3% 1% 2% 1% 0% 32 64 128 256 Cache size (KB) 0% 16 32 64 128 Block size (bytes) 31

Synchroniza]on basics Τα παράλληλα προγράμματα χρειάζονται συγχρονισμό για να συνεργαστούν τα νήματα π.χ. αμοιβαίος αποκλεισμός (mutual exclusion mutex) Υλοποιούνται με υπορουτίνες βιβλιοθήκης σε επίπεδο χρήστη που χρησιμοποιούν ειδικές εντολές του επεξεργαστή Οι εντολές συγχρονισμού επεξεργαστή γενικά απαιτούν αδιάκοπτη (atomic) ανάγνωση και εγγραφή μνήμης 32

Atomic exchange Ανταλλαγή της τιμής ενός καταχωρητή με αυτή μιας θέσης στη μνήμη Υλοποίηση απλής κλειδαριάς 0 ανοιχτή, 1 κλειστή Τοποθέτηση τιμής 1 σε ένα καταχωρητή Εκτέλεση της εντολής ανταλλαγής Αν η τιμή του καταχωρητή είναι 1, κάποιος άλλος πυρήνας πρόλαβε να κλειδώσει Αν η τιμή είναι 0, ο πυρήνας κλείδωσε τη κλειδαριά Καμία πράξη δεν μπορεί να παρεμβληθεί μεταξύ της ανάγνωσης και της εγγραφής 33

Load- linked, store condi]onal Ζεύγος εντολών για συγχρονισμό με καλύτερες ιδιότητες Load linked (ή load locked) δουλεύει όπως μια κοινή load, αλλά η διεύθυνση μνήμης «παρακολουθείται» Store condi]onal αποθηκεύει τη τιμή ενός καταχωρητή στη μνήμη αν δεν έχει γίνει καμία αλλαγή στη διεύθυνση επιστρέφει 1 αν πέτυχε, 0 αλλιώς η διεύθυνση πρέπει να είναι η ίδια με αυτή της load- linked Το ζεύγος εντολών και οι ενδιάμεσες, ουσιαστικά εκτελούνται αδιαίρετα αν η store condi]onal πετύχει αν γίνει διακοπή (interrupt) η sc αποτυχαίνει ακόμα και αν δεν έχει γίνει αλλαγή στη μνήμη 34

ll- sc atomic exchange Ανταλλαγή των τιμών στο καταχωρητή R4 και τη θέση μνήμης που δείχνει ο R1 Μπορούν να υλοποιηθούν διάφορα «κλειδώματα» 35

Υλοποίηση locks με coherence Οι θέσεις μνήμης που χρησιμοποιούνται για κλείδωμα αντιγράφονται στη cache? Τοπικότητα στο κλείδωμα το νήμα θα ξαναχρειαστεί μια κλειδαριά Το spinning μπορεί να γίνει στη τοπική cache ταχύτερα To 2 ο δεν ισχύει πάντα με τον παραπάνω κώδικα το EXCH είναι ανάγνωση εγγραφή, άρα ακυρώνει τα υπόλοιπα αντίγραφα αν κάποιο άλλο νήμα προσπαθεί ταυτόχρονα, η γραμμή κάνει ping- pong στις caches των πυρήνων! 36

Test and exchange Το LD κάνει spin στη τοπική cache (hit) όσο είναι κλειδωμένο Οταν ξεκλειδώσει θα κάνει miss μία φορά και θα δεί τη τιμή 0, αν δεν έχει προλάβει κάποιο άλλο νήμα Η EXCH κάνει την αδιαίρετη ανταλλαγή Μπορεί να μήν πετύχει γι αυτό χρειάζεται ο 2 ος έλεγχος 37

test- exchange με ll- sc Υπάρχουν πολλοί αλγόριθμοι για κλειδώματα ανάλογα με τις ιδιότητες που απαιτούνται (και το πρωτόκολλο coherence) 38