Σύγχρονες Προκλήσεις
Εηζαγσγή Οη CMP είλαη πηα πξαγκαηηθόηεηα Intel Core 2, Quad, Nehalem IBM Power5, Power6 Sun Niagara, Niagara2, Rock Sony Cell Ύπαξμε πνιιώλ threads Τί ηα θάλνπκε; Multithreaded environment Multiprogrammed environment Νέεο πξνθιήζεηο
Homogeneous vs. Heterogeneous Τί είδνπο cores ρξεζηκνπνηνύκε; Homogeneous Systems Χξήζε πνιιαπιώλ ίδησλ ππξήλσλ Επθνιία ζην design Heterogeneous Systems Χξήζε ππξήλσλ κε ηειείσο δηαθνξεηηθό ISA Χξήζε ππξήλσλ κε παξόκνην instruction set Πνιύπινθν design Πνιύπινθν scheduling Καιύηεξν ηζνδύγην απόδνζεο θαηαλάισζεο ελέξγεηαο
Ιεξαξρία Μλήκεο Πνιιέο ζρεδηαζηηθέο επηινγέο έρνπλ κεηαθεξζεί από ην πεδίν ησλ single-processor systems. Σηνπο CMP ιόγσ ησλ παξάιιεισλ threads έρνπκε πνιύ κεγαιύηεξε πίεζε ζηελ ηεξαξρία κλήκεο. Παξάιιεια threads πνπ δνπιεύνπλ ζην ίδην data set (π.ρ. databases) Παξάιιεια threads πνπ δνπιεύνπλ ζε αλεμάξηεηα data sets(π.ρ. servers) Δηαθνξεηηθέο εθαξκνγέο πνπ εθηεινύληαη παξάιιεια Αλάγθε επαλαμηνιόγεζεο ησλ ιύζεσλ πνπ είραλ πξνηαζεί παιηόηεξα. Shared or private levels Πνιηηηθέο αληηθαηάζηαζεο Coherency protocols
Cache Partitioning Η LRU ζεσξείηαη ε θαιύηεξε πνιηηηθή αληηθαηάζηαζεο. Χξεζηκνπνηείηαη ζηα πεξηζζόηεξα ζπζηήκαηα (ή πξνζεγγίζεηο απηήο) Έρεη κεηαθεξζεί θαη ζηνπο CMPs Καηαλέκεη ηελ cache κε βάζε ηε δήηεζε (demand) Πξόβιεκα : thread-blind Μπνξεί λα νδεγήζεη ζε starvation θάπνην thread (π.ρ. αλ έλα από ηα threads εθηειεί έλα streaming application) Λύζε : cache partitioning Κάζε thread κπνξεί λα ρξεζηκνπνηήζεη έλα ζπγθεθξηκέλν θνκκάηη/πνζνζηό ηεο cache Καιύηεξν utilization, βειηίσζε απόδνζεο QoS
Cache Partitioning soplex h264ref soplex h264ref 0 25 50 75 100 Cache Occupancy Under LRU Replacement (2MB Shared Cache)
Cache Replacement Policies Victim Selection Πνην block ζα αληηθαηαζηαζεί (LRU, Random θηι) Insertion Policy Πνηα ε πξνηεξαηόηεηα ηνπ λένπ block (π.ρ. MRU)? ISCA 2007 MRU policy LRU policy Bimodal Insertion Policy (BIP) MRU LRU a b c d e f g h Reference to i with conventional LRU policy: i a b c d e f g Reference to i with LIP: a b c d e f g i Reference to i with BIP: if( rand() < ) Insert at MRU postion else Insert at LRU position
Dynamic Insertion Policy Set Dueling Monitors HW overhead 10 bits Combinational logic Επέθηαζε γηα shared caches TADIP SDM-LRU SDM-BIP Follower Sets miss + miss NO USE LRU PSEL MSB = 1? YES DO BIP - Based on Analytical and Empirical Studies: 32 Sets per SDM 10 bit PSEL counter
Cache Usage Cache Usage % MRU insertions % MRU insertions MPKI MPKI APKI APKI TADIP SOPLEX H264REF LRU BIP Baseline LRU Policy / DIP TADIP
Non-Uniform Cache Access Latency (1) core L1$ core L1$ core L1$ core L1$ Οη caches ζρεδηάδνληαη κε (κεγάιεο) uniform acess latency Intra-Chip Switch Best Latency = Worst Latency!!! Μηθξέο θαη γξήγνξεο L1 L2 Cache Μεγάιε θαη αξγή L2 Dance-Hall Layout
Non-Uniform Cache Access Latency (2) core L1$ core core L1$ L1$ Intra-Chip Switch core L1$ Σπάζηκν ηεο L2 ζε κηθξά θνκκάηηα γηα λα κεησζεί ν ρξόλνο πξόζβαζεο θαη ε θαηαλάισζε ελέξγεηαο Best Latency < Worst Latency Σηόρνο : Average Latency Best Latency Dance-Hall Layout
Non-Uniform Cache Access Latency (3) core L1$ core core core L1$ L1$ L1$ Intra-Chip Switch Πξνθιήζεηο : Private vs Shared Data Placement Data Migration Efficient search Dance-Hall Layout
Parallel Programming Μέρξη ζήκεξα : Γηα όζνπο έρνπλ πξόζβαζε ζε κεγάια παξάιιεια ζπζηήκαηα Χξήζε γισζζώλ κε low-level concurrency features Δύζθνιν λα ην γξάςεηο Δύζθνιν debugging Δύζθνιε ε δηαηήξεζε θαη ε επέθηαζε ηνπ θώδηθα Δύζθνιν λα πεηύρεηο speedups! Σήκεξα ν θαζέλαο έρεη έλα CMP Πώο γξάθνπκε απνδνηηθό παξάιιειν θώδηθα;
Locks Χξήζε locks (enforce atomicity) Απαηζηόδνμε ζεώξεζε ησλ πξαγκάησλ Coarse grain Εύθνιε πινπνίεζε Πεξηνξηζκόο ηνπ εθκεηαιιεύζηκνπ παξαιιειηζκνύ Fine grain Πνιύπινθε πινπνίεζε (πνιιαπιά locks γηα ηα επηκέξνπο ζηνηρεία κηαο δνκήο) Πεξηζζόηεξνο παξαιιειηζκόο, αιιά κεγαιύηεξν overhead Πνιύ δύζθνιε ε ππέξζεζε ησλ locks (composability) O πξνγξακκαηηζηήο νξίδεη ηη ζα γίλεη θαη πσο
Transactional Memory (1) Ο πξνγξακκαηηζηήο νξίδεη atomic sections θαη ην ζύζηεκα αλαιακβάλεη λα ηα πινπνηήζεη. Εκπλεπζκέλν από ηηο βάζεηο δεδνκέλσλ Αηζηόδνμε ζεώξεζε ησλ πξαγκάησλ Απνδίδεη ηόζν θαιά όζν θαη ην fine-grain locking Composability
Transactional Memory vs Locks
Transactional Memory(2) STM vs HTM (ή Hybrid TM) Data versioning Lazy vs Eager
Transactional Memory(3) Conflict detection Pessimistic (Eager) Εληνπηζκόο ησλ conflicts λσξίο Ληγόηεξε ρακέλε δνπιεηά Δελ εγγπάηαη forward progress
Transactional Memory(4) Conflict detection Optimistic (Lazy) Εληνπηζκόο ησλ conflicts ζην ηέινο Fairness problems Εγγπάηαη forward progress
TM Implementation Space Hardware TM Systems Lazy + optimistic : Stanford TCC Lazy + pessimistic : MIT LTM, Intel VTM Eager + pessimistic : Winsconsin LogTM Software TM Systems Lazy + optimistic (rd/wr) : Sun TL2 Lazy + optimistic (rd) / pessimistic (wr) : MS OSTM Eager + optimistic (rd) /pessimistic (wr) : Intel STM Eager + pessimistic (rd/wr) : Intel STM Optimal design??????