Υ07 Παράλληλα Συστήματα 2017-18 24/4/2018 Συστήματα κατανεμημένης μνήμης (ΙΙ)
Μεταγωγή (switching)
Μεταγωγι Ενϊ ο ζλεγχοσ ροισ φυςικοφ μζςου μεταφζρει bits μεταξφ δφο διαδρομθτϊν, θ μεταγωγι (switching) ενϊνει εςωτερικά ςε ζναν διαδρομθτι το κανάλι ειςόδου με το επιλεγμζνο κανάλι εξόδου και μεταφζρει δεδομζνα. Κακορίηει το πϊσ και το πότε κα γίνει θ ςφνδεςθ αυτι Μπορεί να γίνει ςτιγμιαία, για μικρό ι για μεγάλο χρονικό διάςτθμα Μπορεί να γίνει αφοφ αποφαςιςτεί το κανάλι εξόδου, δθλαδι αφοφ ολοκλθρωκεί θ λειτουργία τθσ διαδρόμθςθσ ςτον router, κατά τθ διάρκειά τθσ ι ακόμα και πριν (!) Γενικά είναι ο μθχανιςμόσ που εςωτερικά ςτον διαδρομθτι προωκεί τα bits από μία είςοδο ςε μία προκακοριςμζνθ ζξοδο (θ επιλογι τθσ εξόδου δεν είναι αρμοδιότθτα τθσ μεταγωγισ αλλά τθσ λειτουργίασ τθσ διαδρόμθςθσ). Υψθλζσ επιδόςεισ: χρονικά, αν γίνεται, να υπάρχει επικάλυψθ με τισ υπόλοιπεσ λειτουργίεσ του διαδρομθτι. 3
Τυπικι δομι διαδρομθτι Control/Arbitration Τμιμα που αποφαςίηει τι κα ςυμβεί ςτθν περίπτωςθ ςυγκροφςεων (π.χ. δφο πακζτα ειςόδου πρζπει να πάνε ςτο ίδιο κανάλι εξόδου) Routing Τμιμα που αποφαςίηει το κανάλι εξόδου ςτο οποίο κα ςυνδεκεί ζνα κανάλι ειςόδου για να προωκθκεί κάποιο μινυμα (υλοποιεί τον αλγόρικμο διαδρόμθςθσ) Injection / Ejection Κανάλια που μεταφζρουν μθνφματα από / προσ τον τοπικό κόμβο (δθλαδι ειςάγουν κίνθςθ ςτο / αφαιροφν κίνθςθ από το δίκτυο). Αρχιτεκτονικζσ 1-port, k-port, allport Channel Αποτελείται από το μζςο (π.χ. καλϊδιο), buffers και επιπλζον κυκλϊματα ελζγχου (link controllers) Switch Συνδζει τα κανάλια ειςόδου με τα κανάλια εξόδου. Συνικωσ είναι διακόπτθσ crossbar εφόςον τα κανάλια δεν είναι πάρα πολλά. Μπορεί όμωσ να αποτελείται από ςφνολο διακοπτϊν, όπωσ π.χ. multistage δίκτυο ι ακόμα και point-to-point δίκτυο από διακόπτεσ. Buffers (Αν υπάρχουν!) Χρθςιμεφουν για τθν προςωρινι αποκικευςθ των πακζτων, πριν προχωριςουν ςτον επόμενο διαδρομθτι. Μπορεί να μθν υπάρχουν κακόλου (BUFFERLESS), να υπάρχουν μόνο ςτισ εξόδουσ (OUTPUT BUFFERED/QUEUED), μόνο ςτισ ειςόδουσ (INPUT BUFFERED/QUEUED) ι και ςτισ δφο μεριζσ, όπωσ εδϊ, αλλά μπορεί και να υπάρχουν κοινόχρθςτοι buffers (SHARED BUFFERS). 4
Μεταγωγι Ρϊσ μεταφζρονται μθνφματα από ζνα κανάλι ειςόδου ςε ζνα κανάλι εξόδου ςτον ίδιο κόμβο. Μερικζσ τεχνικζσ μεταγωγισ: Κυκλϊματοσ (circuit switching) Ρακζτου / μθνφματοσ / SAF (Store-and-Forward) Virtual Cut-Through (VCT) Wormhole Virtual channels Pipelined circuit switching 5
Μεταγωγι κυκλϊματοσ Τρεισ φάςεισ: ςχθματιςμόσ (και δζςμευςθ) του μονοπατιοφ από το probe μεταφορά του μθνφματοσ αποδζςμευςθ του μονοπατιοφ Μινυμα ACK 6
Μεταγωγι SAF Ρακζτου / μθνφματοσ / SAF (Store-and-Forward) Το μινυμα χωρίηεται ςε πακζτα ςτακεροφ μικουσ Κάκε πακζτο προωκείται ανεξάρτθτα. Οι κόμβοι (α) το λαμβάνουν και το αποκθκεφουν ςε buffer και (β) το προωκοφν ςτον επόμενο κόμβο 7
Μεταγωγι VCT Σαν το SAF αλλά: Αν το κανάλι εξόδου είναι ελεφκερο, κακϊσ λαμβάνονται τα bits τθσ επικεφαλίδασ, αποφαςίηεται το κανάλι εξόδου και όλο το μινυμα διοχετεφεται κατευκείαν εκεί (άρα ελάχιςτθ κακυςτζρθςθ). Αν όχι, buffering όπωσ ςτο SAF. Ταχφτθτα αν δεν υπάρξει εμπόδιο Πμωσ, δεν εξαλείφεται θ ανάγκθ για buffers που ζχει και το SAF. 8
Μεταγωγι wormhole Ανάμεςα ςε VCT και circuit switching. Το μινυμα χωρίηεται ςε ΡΟΛΥ μικρά πακζτα, τα flits (1-4 bytes). To πρϊτο αποτελεί τθν επικεφαλίδα Η επικεφαλίδα προχωρά με VCT αλλά τα υπόλοιπα flits ακολουκοφν (και δεςμεφουν) τουσ προθγοφμενουσ κόμβουσ, χωρίσ κενά, ςαν ςε pipeline. Αν θ επικεφαλίδα μπλοκάρει κάπου, τα flits αποκθκεφονται εκεί που βρίςκονται (άρα πολφ μικροί buffers απαιτοφνται), εμποδίηοντασ με τθ ςειρά τουσ άλλα flits να περάςουν. 9
Ασ υποκζςουμε ότι Κάκε πακζτο αποτελείται από 1 flit επικεφαλίδασ και M flits δεδομζνων Σφνολο: Μ+1 flits για το πλιρεσ πακζτο Το μινυμα πρζπει να διανφςει μονοπάτι μικουσ D για να φτάςει ςτον προοριςμό του Δεν ςυναντάει κανζνα εμπόδιο (δθλαδι αναμονι λόγω κατειλθμμζνων καναλιϊν) ςτον δρόμο του Κανάλια με ςυχνότθτα B Hz Το κανάλι ζχει πλάτοσ 1 phit (= #bits που μεταφζρει ταυτόχρονα ςε 1 κφκλο) Υποκζτουμε 1 phit = 1 flit Δθλαδι χωρθτικότθτα / ρυκμόσ μεταφοράσ: B flits / sec. Χρόνοσ μεταφοράσ, για να διαςχίςει ζνα flit το κανάλι: tw = 1/B sec. 10 Y07 -- ΠΑΡΑΛΛΗΛΑ Τ ΣΗΜΑΣΑ
Χρόνοι Για να αποφαςιςτεί το κανάλι εξόδου (Route & control) ςε ενδιάμεςο κόμβο, απαιτείται χρόνοσ t r Χρόνοσ διαδρόμθςθσ Για να μεταφερκεί από τθν είςοδο ςτθν ζξοδο ςε ζνα ενδιάμεςοσ κόμβοσ χρειάηεται χρόνοσ t m Ρεριλαμβάνει όλεσ τισ κακυςτεριςεισ (buffering, πζραςμα από switch κλπ) για να περάςει από κανάλι ειςόδου ςε κανάλι εξόδου Χρόνοσ διάςχιςθσ 11
Χρόνοσ με μεταγωγι κυκλϊματοσ m m D( t t tm) D t w t ) Mtw w r ( m T circuit switching r 2( tm tw Mtw D t ) 12
Χρόνοσ με μεταγωγι SaF m m ( t t )( M 1) w m T packet switching D t D( t r r ( t t w w t t m m )( M 1) ) DM( t w t m ) 13
Χρόνοσ με VCT (πάντα, χωρίσ αναμονζσ) m TVCT D tr tm tw Mtw Tα άλλα flit ακολουκοφν από πίςω και καταφκάνουν το ζνα μετά το άλλο. Ο χρόνοσ για να φτάςει το header flit Αν ο χρόνοσ να διαςχιςκεί ζνασ διαδρομθτισ (tm) είναι μεγαλφτεροσ από τον χρόνο μετάδοςθσ ςτο κανάλι (tw), τότε ο όροσ πρζπει να είναι Mtm. Αν ο διαδρομθτισ ιταν μόνο input-buffered? 14 Y07 -- ΠΑΡΑΛΛΗΛΑ Τ ΣΗΜΑΣΑ
Χρόνοσ με wormhole switching m T wormhole routing D t r tm tw Mtw (Κδιοσ με το VCT χωρίσ αναμονζσ.) 15
Πλοι οι χρονιςμοί T circuit switching = D(t w +2(t r +t m )) + Mt w T SAF = D(t w +t r +t m ) + DM(t w +t r ) T VCT = T WR = D(t w +t r +t m ) + Mt w 16
Σφγκριςθ Υπεραπλουςτεφοντασ, ασ υποκζςουμε ότι tw tr tm = 1 χρονικι μονάδα. Οι εκφράςεισ μασ απλοποιοφνται ωσ εξισ: Tcircuit switching = TVCT = TWR = Θ(D+M) TSAF = Θ(DM) Αν τα μθνφματα δεν είναι πάρα πολφ μικρά, (Μ = Ο(D)), τότε Tcircuit switching = TVCT = TWR = Θ(Μ) Επομζνωσ οι μεταγωγζσ κυκλϊματοσ, VCT και wormhole εξαρτϊνται ςχεδόν αποκλειςτικά από το M και άρα είναι ανεξάρτητεσ τησ απόςταςτησ (distance insensitive). Πλα αυτά, βζβαια, με τθν προχπόκεςθ ότι δεν υπάρχουν ςυγκροφςεισ / αναμονζσ ςτο μονοπάτι του μθνφματοσ. 17 Y07 -- ΠΑΡΑΛΛΗΛΑ Τ ΣΗΜΑΣΑ
Wormhole switching Το wormhole switching ζχει επικρατιςει διότι Ταχφτθτα ακόμα και ςε δίκτυα μεγάλθσ διαμζτρου Ελάχιςτο buffering Οπότε γίνεται δυνατι θ υλοποίθςθ routers ςε ανεξάρτθτο chip και όχι μζςω τθσ μνιμθσ του κόμβου High-speed (low latency) routers and networks Σε υψθλι κίνθςθ είναι ιδιαίτερα επιρρεπζσ ςε deadlocks αφοφ δεςμεφει πολλοφσ πόρουσ (κανάλια) ςτθν πορεία του. 18
Τεχνικι: virtual channels (εικονικά κανάλια) Συνικωσ οι buffers ςτα κανάλια είναι ουρζσ FIFO Επομζνωσ, αν το header flit μπλοκάρει, όλα τα προθγοφμενα κανάλια δεςμεφονται (ςαν το circuit switching) Κανζνα άλλο μινυμα δεν μπορεί να προχωριςει Τεχνικι για βελτίωςθ τθσ κατάςταςθσ: virtual channels Κάκε φυςικό κανάλι «υποδιαιρείται» ςε πολλά εικονικά («λογικά») κανάλια. Τα εικονικά κανάλια πολυπλζκονται ςτο φυςικό κανάλι χρονικά Κάκε εικονικό κανάλι ορίηεται ουςιαςτικά από ηεφγοσ buffers ςε δφο γειτονικοφσ routers 2 εικομικά καμάλια στημ μία κατεύθυμση 2 εικομικά καμάλια στημ άλλη κατεύθυμση 19
Virtual channels Αν πολυπλζκονται χρονικά κ εικονικά κανάλια πάνω ςε 1 φυςικό κανάλι Β bits/sec, είναι ςαν να ζχω κ διαφορετικά φυςικά κανάλια, το κακζνα (Β/κ) bits/sec, δθλαδι πιο πολλά αλλά πιο αργά κανάλια. Αρχικά χρθςιμοποιικθκαν για το πρόβλθμα του deadlock Πμωσ, μποροφν να βελτιϊςουν και τισ επιδόςεισ μιασ και πλζον το φυςικό κανάλι δεν δεςμεφεται εξ ολοκλιρου από κάποιο μπλοκαριςμζνο μινυμα Μποροφν ζτςι να προχωροφν μαηί παραπάνω από ζνα μθνφματα ςτο κανάλι 20
Virtual channels Εδϊ, αν το Α είχε μπλοκάρει ςτον R2, κα περίμενε αναγκαςτικά και το Β (άρα 2 μθνφματα ςε αναμονι, ενϊ τϊρα κανζνα) Επίςθσ, αν το Α ιταν τεράςτιο, το Β κα περίμενε για πολφ ϊρα ενϊ τϊρα όχι. Πμωσ ςίγουρα χάνουμε ςε ταχφτθτα και επίςθσ αυξάνει και θ πολυπλοκότθτα του διαδρομθτι Επομζνωσ καλό είναι να μθν είναι πολλά τα virtual channels 21
Κλιμακώσιμα συστήματα, υπολογιστικές συστάδες (clusters)
Ομαδοποιθμζνοι ι κλιμακϊςιμοι πολυεπεξεργαςτζσ Clustered ι scalable multiprocessors (κλιμακϊςιμοι) Ρολυεπεξεργαςτζσ με οργάνωςθ κατανεμθμζνθσ μνιμθσ μόνο που: Κάκε κόμβοσ αποτελείται από ομάδα επεξεργαςτϊν / πυρινων που μοιράηονται τθν τοπικι μνιμθ. Άρα, κάκε ομάδα είναι ζνασ μικρόσ ςυμμετρικόσ πολυεπεξεργαςτισ Το δίκτυο διαςφνδεςθσ ςυνδζει τισ ομάδεσ 23
Ραραδείγματα SGI Origin 2000 (και μετζπειτα UV-1000, UV-2000): Κόμβοσ = 1 πλακζτα με 2 CPUs MIPS και κοινόχρθςτθ τοπικι μνιμθ Σφςτθμα = υπερκφβοσ που ςυνδζει πλακζτεσ-κόμβουσ Sequent Numa-Q: Κόμβοσ = Pentium Quad (4 επεξεργαςτζσ Pentium) με κοινόχρθςτθ τοπικι μνιμθ Σφςτθμα = δακτφλιοσ μεταξφ των κόμβων 24
Υπολογιςτικζσ ςυςτάδεσ (clusters) και πλζγματα (grids) Σφνολο από αυτόνομουσ υπολογιςτζσ (PCs) ςυνδεδεμζνα με ζνα δίκτυο μεταξφ τουσ: Οι ςυςτάδεσ (clusters) είναι ςυνικωσ ομοιογενείσ (παρόμοιοι υπολογιςτζσ, με ίδιο λειτουργικό ςφςτθμα) και είναι τοποκετθμζνοι ςτον ίδιο χϊρο Τα πλζγματα (grids) αναφζρονται ςυνικωσ ςε ανομοιογενείσ ςυλλογζσ από υπολογιςτζσ, με διαφορετικά χαρακτθριςτικά και λειτουργικά ςυςτιματα, οι οποίο επίςθσ μπορεί να είναι εξαπλωμζνοι γεωγραφικά ςε μεγάλεσ αποςτάςεισ. Μιλάμε για clusters αλλά ότι ποφμε αντίςτοιχα ιςχφει και για πλζγματα Κάκε κόμβοσ-pc ςε ζνα cluster είναι ζνασ μικρόσ SMP Ρ.χ. διακζτει είτε πολλαπλοφσ επεξεργαςτζσ είτε πλζον το ςυνθκζςτερο ζναν πολυπφρθνο επεξεργαςτι Επομζνωσ το όλο ςφςτθμα ζχει οργάνωςθ είναι ομαδοποιθμζνου πολυεπεξεργαςτι. 25
Υπολογιςτικζσ ςυςτάδεσ (clusters) και πλζγματα (grids) Δίκτυο διαςφνδεςθσ Κάρτα δικτφου = διαδρομθτισ Από ςχετικά αργό αλλά πολφ οικονομικό (π.χ. Gbit Ethernet) Ζωσ πολφ γριγορο και ακριβό (π.χ. Myrinet, Infiniband) Κάκε κόμβοσ = αυτόνομοσ υπολογιςτισ, με δικό του χϊρο μνιμθσ και δικό του λειτουργικό ςφςτθμα (ςυνικωσ Linux) Υπάρχει όμωσ ενδιάμεςο λογιςμικό ϊςτε να δίνεται θ εντφπωςθ ψευδαίςκθςθ ενιαίου ςυςτιματοσ (SSI Single System Image), αν χρειάηεται Ρρογραμματίηονται ςαν να είναι 1 μθχανι Κυρίωσ με μεταβίβαςθ μθνυμάτων 26
Κατανεμημένη κοινή μνήμη, NUMA
Γιατί; Συςτιματα κατανεμθμζνθσ μνιμθσ: Αρχιτεκτονικι: κλιμακώςιμη Ρρογραμματιςμόσ (MPI): αρκετά δύςκολοσ αλλά και δυνατότθτα επιδόςεων Συςτιματα κοινόχρθςτθσ μνιμθσ (SMPs): Αρχιτεκτονικι: δύςκολα κλιμακώςιμη Ρρογραμματιςμόσ: οικείοσ / προςιτόσ Το ιδεϊδεσ: Κλιμακϊςιμεσ αρχιτεκτονικζσ που να προγραμματίηονται εφκολα (αλλά μθν ξεχνάμε και τισ επιδόςεισ) Μετά το ςειριακό, το πιο εφκολο είναι ο προγραμματιςμόσ κοινισ μνιμθσ (π.χ. OpenMP) Λφςθ: «emulation» τθσ κοινόχρθςτθσ μνιμθσ πάνω από το ςφνολο των ιδιωτικϊν μνθμϊν με hardware με software (π.χ. ςε clusters όπου είναι αδφνατον να αλλάξει το hardware) Άρα λογικά κοινόχρθςτθ, φυςικά κατανεμθμζνθ μνιμθ 28
Hardware κόμβοσ ςυςτιματοσ ΜΝΗΜΗ (ΤΟΡΙΚΗ) CPU ROUTER 29
Ανομοιόμορφθ προςπζλαςθ μνιμθσ (NUMA) ΜΝΗΜΗ (ΤΟΡΙΚΗ) CPU ΕΛΕΓΚΤΗΣ DSM ROUTER Η CPU προςπελαφνει όλο τον χϊρο διευκφνςεων ενιαία Η τοπικι μνιμθ ζχει μόνο ζνα μικρό κομμάτι του χϊρου Ο ελεγκτισ DSM ελζγχει κάκε διεφκυνςθ που προςπελαφνει θ CPU (1) Αν είναι για τθν τοπικι μνιμθ δεν κάνει τίποτε (2) Αν όχι, αναλαμβάνει τθν επικοινωνία με τον κόμβο που τθν χειρίηεται (home node), ςτζλνοντασ κατάλλθλο μινυμα. Μόλισ ζρκει θ απάντθςθ, δίνει δεδομζνα ςτθ CPU ςαν να ιταν αποκθκευμζνο τοπικά 30
Hardware ελεγκτισ DSM ΜΝΗΜΗ (ΤΟΡΙΚΗ) CPU ΕΛΕΓΚΤΗΣ DSM ROUTER Το μόνο που καταλαβαίνει θ CPU είναι θ διαφορά ςτθν ταχφτθτα προςπζλαςθσ κάποιων δεδομζνων (τα απομακρυςμζνα κάνουν πολφ παραπάνω χρόνο να ζρκουν) NUMA (non-uniform memory access) Ρ.χ. Cray T3D: 2 κφκλοι για τα τοπικά και περίπου 150 κφκλοι για τα απομακρυςμζνα δεδομζνα Συςτιματα με 4 επεξεργαςτζσ AMD Opteron 8347HE: περίπου 26% (32%) επιπλζον χρόνοσ για απομακρυςμζνθ ανάγνωςθ (εγγραφι). 31
Hardware ελεγκτισ DSM ΜΝΗΜΗ (ΤΟΡΙΚΗ) CPU ΕΛΕΓΚΤΗΣ DSM ROUTER Ερώτηςη: Μείωςθ χρόνου προςπζλαςθσ??? Απάντθςθ: caches για τα απομακρυςμζνα δεδομζνα Πμωσ, πάλι: πρόβλθμα ςυνοχισ για τα κοινά δεδομζνα! Λύςεισ: Ρρωτόκολλα ςυνοχισ => cachecoherent NUMA (ccnuma) Αποφυγι προβλιματοσ. Ρ.χ. ςτον Cray T3D δεν υπιρχε πρωτόκολλο ςυνοχισ. Απλά, ςτισ caches δεν επιτρζπονταν κοινά δεδομζνα 32
Γενίκευςθ: πολυπφρθνοσ ι πολυεπεξεργαςτικόσ κόμβοσ ΜΝΗΜΗ (ΤΟΡΙΚΗ) ΕΛΕΓΚΤΗΣ DSM CPU CPU CPU ROUTER Διπλό cache coherency: «εξωτερικό» πρωτόκολλο από ελεγκτι DSM για απομακρυςμζνα δεδομζνα Υποχρεωτικά πρωτόκολλο καταλόγων «εςωτερικό» πρωτόκολλο από caches των CPUs του κόμβου για τα τοπικά Ρρωτόκολλο snooping 33
Ραράδειγμα: Sequent Numa-Q Το IQ-Link ενςωμάτωνε το ρόλο του διαδρομθτι και του ελεγκτι DSM. Υλοποιοφςε το εξωτερικό πρωτόκολλο SCI (αλυςιδωτοί κατάλογοι) Εςωτερικά ςτθν ομάδα, οι Pentium είχαν διατθροφςαν τθ ςυνζπεια με πρωτόκολλο MESI 34
Κατανεμημένη μνήμη και multicores
Ρολυπφρθνοι επεξεργαςτζσ και κατανεμθμζνθ μνιμθ Κυρίωσ δφο περιπτϊςεισ: Χριςθ multicore CPUs ωσ κόμβων ενόσ μεγαλφτερου ςυςτιματοσ Το ςφςτθμα δομείται ωσ ζνα δίκτυο από τζτοιουσ κόμβουσ Χριςθ multicore CPU ϊςτε να αποτελεί ολόκλθρο το ςφςτθμα Λογικά, μιλάμε για CPU με αρκετοφσ πυρινεσ (ίςωσ many-core CPU) Στθν πρϊτθ περίπτωςθ ο κάκε επεξεργαςτισ ζχει δικά του κανάλια για να ςυνδεκεί με τοπικι μνιμθ + επιπλζον κανάλια για να ςυνδεκεί με άλλουσ επεξεργαςτζσ AMD Opterons Intel Xeon (E5, E6 series) Στθ δεφτερθ περίπτωςθ, μζςα ςτον ίδιο τον επεξεργαςτι περιλαμβάνονται οι πυρινεσ, οι ιδιωτικζσ μνιμεσ και το δίκτυο διαςφνδεςθσ NoC (Network-on-Chip) MPSoC / MCSoc (Multiprocessor/Multicore System-on-Chip) 36
Ραράδειγμα: AMD Opterons ISTANBUL (6-πφρθνοσ) - 3 κανάλια HT ανά επεξεργαςτι - Μεταγωγι Virtual Cut-Through - Μπορεί να ςυνδεκοφν 8 κόμβοι με μζγιςτθ απόςταςθ 3 hops και να περιςςζψουν και κανάλια για I/O - HT Assist (1MiB ςτθν L3) για υλοποίθςθ απλοφ πρωτοκόλλου καταλόγων MAGNY-COURS (12-πφρθνοσ) - 2 Istanbul ενωμζνοι -Μζχρι 4 επεξεργαςτζσ ςτο ςφςτθμα -Επομζνωσ μζχρι 48 πυρινεσ (χωρίσ προςκικθ επιπλζον υλικοφ) - NUMA factor: 1.2 για 1 hop (20% πιο αργι) 1.5 για 2 hop (50% πιο αργι) 37
Ραράδειγμα: Epiphany-16 Για εγγραφζσ, 1.5 κφκλοσ per hop για εγγραφι ςε μνιμθ που είναι ςε απόςταςθ D => 1.5xD κφκλοι Epiphany-64 (δεν κυκλοφοράει ςτο εμπόριο προσ το παρόν): πλζγμα 8x8 38
Ραράδειγμα: AMD Opteron & HyperTransport - 3 HT channels per processor (node) - Cut-through switching - Can connect 8 nodes with up to 3 hops distance plus leave channels for I/O (average distance is < 2) 39
Ραράδειγμα: AMD Opteron & HyperTransport Coherent HyperTransport Η ςυνοχι επιτυγχάνεται με flooding (broadcasting) Typical transaction: 1. Requestor sends message to home node (ηθτϊντασ κάποιο δεδομζνο) 2. Home node forwards / broadcasts to all nodes (διότι δεν γνωρίηει ποιοσ ζχει αντίγραφο ενθμερωμζνο) 3. Every node replies (with acknowledgement or the data) directly to the requestor 4. Requestor selects the correct data and notifies the home node. Αν οι κόμβοι είναι πολλοί, τα βιματα 2 και 3 προκαλοφν υπερβολικι κίνθςθ Δεν υπάρχει (χρειάηεται) κατάλογοσ. 40
Κλιμακϊνοντασ το Coherent HT HyperTransport Assist Από τθ ςειρά Magny Cours (ζωσ 12 πυρινεσ) Συςτιματα με 4 sockets => 48 πυρινεσ, το Coherent HT ειςάγει υπερβολικι κίνθςθ Υπάρχει πλζον κατάλογοσ (directory) ϊςτε να αποφεφγονται τα broadcasts Ο κατάλογοσ υλοποιείται ςτθν L3 cache Καταναλϊνει 1 MΒ από τα 6 ΜΒ. Δθμιουργείται εγγραφι μόνο αν Ο κόμβοσ είναι home node για το δεδομζνο ΚΑΙ το δεδομζνο το ζχει πάρει και κάποιοσ άλλοσ επεξεργαςτισ Άρα το cache miss ςθμαίνει ότι το δεδομζνο δεν είναι cached πουκενά Ο κατάλογοσ είναι «μερικόσ»: 1 sharer ι more than one sharer 41
Intel QuickPath (QPI) Ξεκινϊντασ με τουσ επεξεργαςτζσ Core i7-9xx 42
QPI Home Snoop Το snoop είναι ατυχζσ 43
QPI Source Snoop Το snoop είναι ατυχζσ 44
QPI Το δεφτερο (source snoop) «γλιτϊνει» ζνα βιμα, άρα χαμθλότερο latency Καλφτερο για μικρά ςυςτιματα Πμωσ δθμιουργεί μεγαλφτερθ κίνθςθ Το home snoop είναι κλιμακϊςιμο και κάνει για μεγαλφτερα ςυςτιματα. Το source snoop είναι παρόμοιο με το Coherent HT Πμωσ ο requestor (και όχι ο home) είναι αυτόσ που εκπζμπει ςε όλουσ Αυτό δυςκολεφει τθ διευκζτθςθ των races (όταν γίνουν ταυτόχρονεσ αιτιςεισ για το ίδιο δεδομζνο, οι οποίεσ μεταδίδονται ςτουσ κόμβουσ με διαφορετικι ίςωσ ςειρά) κάτι που το ζλυνε o home ςτο coherent HT. 45