Multi-threading
description
Transcript of Multi-threading
![Page 1: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/1.jpg)
Multi-threadingMulti-threading
Κορομηνάς Κωνσταντίνος – ΜΚορομηνάς Κωνσταντίνος – Μ437437
Χατζηανδρέου Ελένη - Μ400Χατζηανδρέου Ελένη - Μ400
Χήνου Διονυσία – Μ364Χήνου Διονυσία – Μ364
![Page 2: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/2.jpg)
ΕισαγωγήΕισαγωγή
MultithreadingMultithreading Simultaneous Multithreading (SM)Simultaneous Multithreading (SM) Simultaneous Subordinate Microthreading Simultaneous Subordinate Microthreading
(SSMT)(SSMT) Speculative Data-Driven MultithreadingSpeculative Data-Driven Multithreading
![Page 3: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/3.jpg)
Multithreaded Multithreaded
Synchronization Unit (SU)Synchronization Unit (SU) Execution Unit (EU)Execution Unit (EU)
![Page 4: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/4.jpg)
Synchronization Unit (SU)Synchronization Unit (SU)
ΕΕίναι αρμόδιο για την έκδοση των ίναι αρμόδιο για την έκδοση των σημάτων σημάτων ενεργοποίησηςενεργοποίησης ((fire fire signalssignals) ) στην στην EUEU
Fire signal :Fire signal : < <fp,ipfp,ip>> Ready thread pollReady thread poll
![Page 5: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/5.jpg)
Synchronization SignalsSynchronization Signals
<‘<‘spawnspawn’, fp, ip>’, fp, ip> <‘<‘syncsync’, fp, ss_off>’, fp, ss_off>
![Page 6: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/6.jpg)
Μηνύματα Μηνύματα SUSU
Data RetrievalData Retrieval– <‘<‘getget’,’, addr_val, fp, ipaddr_val, fp, ip>>– <‘<‘datadata’,’, addr_val, value, fp, ipaddr_val, value, fp, ip>>
Synchronization Synchronization – <‘<‘backtobackto’, fp, fut_off, ss_off, value’, fp, fut_off, ss_off, value>>
Thread migrationThread migration– <‘<‘threadthread’,’, f_size, frame_contents, ipf_size, frame_contents, ip>>
![Page 7: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/7.jpg)
Execution Unit (EU)Execution Unit (EU)
![Page 8: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/8.jpg)
Simultaneous MultithreadingSimultaneous Multithreading
ΜιΜια τεχνική που επιτρέπει σε α τεχνική που επιτρέπει σε διάφορα ανεξάρτητα διάφορα ανεξάρτητα threadsthreads να να παρέχουνπαρέχουν εντολές εντολές σσεε πολλαπλ πολλαπλέές ς λειτουργικές μονάδες λειτουργικές μονάδες σε σε κάθε κάθε κύκλοκύκλο
ΣΣτόχος είναι να αυξηθεί τόχος είναι να αυξηθεί ουσιαστικά η χρησιμοποίηση ουσιαστικά η χρησιμοποίηση επεξεργαστώνεπεξεργαστών
![Page 9: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/9.jpg)
Simultaneous MultithreadingSimultaneous MultithreadingMachine ModelsMachine Models
Fine-Grain MultithreadingFine-Grain Multithreading SM:Full Simultaneous IssueSM:Full Simultaneous Issue SM:Single Issue,SM:Dual Issue, SM:Four SM:Single Issue,SM:Dual Issue, SM:Four
IssueIssue SM:Limited ConnectionSM:Limited Connection
![Page 10: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/10.jpg)
Machine ModelsMachine Models
Διαφορές Διαφορές HardwareHardware
![Page 11: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/11.jpg)
![Page 12: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/12.jpg)
Cache DesignCache Design
[total I cache size in[total I cache size in KB]KB] [private [private or shared].[D cache size]or shared].[D cache size] [private or shared][private or shared]
![Page 13: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/13.jpg)
SM vs. Single-Chip MPSM vs. Single-Chip MP
![Page 14: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/14.jpg)
Πλεονεκτήματα Πλεονεκτήματα SM SM έναντι έναντι MPMP
ΑΑπόδοση με λίγα πόδοση με λίγα threadsthreads Granularity Granularity και ευελιξία και ευελιξία
σχεδσχεδιασμούιασμού
![Page 15: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/15.jpg)
Πλεονεκτήματα Πλεονεκτήματα SMSM
Καλύτερη ρυθμαπόδοση (Καλύτερη ρυθμαπόδοση (throughputthroughput)) Καλύτερη από Καλύτερη από finefine graingrain
multithreadedmultithreaded Καλύτερη στηνΚαλύτερη στην απόδοση από απόδοση από
πολυεπεξεργαστή πολυεπεξεργαστή multiplemultiple issueissue
![Page 16: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/16.jpg)
Μέρος Β΄Μέρος Β΄
ΉΉΜε στόχο την αύξηση της Με στόχο την αύξηση της ταχύτηταςταχύτητας εκτέλεσης ενός προγράμματοςεκτέλεσης ενός προγράμματος,,με άξονα την με άξονα την ThreadedThreaded--techtech..
![Page 17: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/17.jpg)
Εντοπίζοντας το πρόβλημαΕντοπίζοντας το πρόβλημα……
Αύξηση της αποδοτικότητας μιας Αύξηση της αποδοτικότητας μιας multiprocessingmultiprocessing αρχιτεκτονικής μέσω αρχιτεκτονικής μέσω Threads – MultithreadedThreads – Multithreaded αρχιτεκτονική αρχιτεκτονική ((γιατίγιατί;;))..
Συνέπειες ως προς το χρόνο ολοκλήρωσης Συνέπειες ως προς το χρόνο ολοκλήρωσης εκτέλεσης ενός προγράμματος μεμονωμέναεκτέλεσης ενός προγράμματος μεμονωμένα;;
![Page 18: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/18.jpg)
Εντοπίζοντας το πρόβλημα(2)...Εντοπίζοντας το πρόβλημα(2)...
ΖΗΤΕΙΤΑΙ : επιτάχυνση της εκτέλεσης των ΖΗΤΕΙΤΑΙ : επιτάχυνση της εκτέλεσης των ThreadsThreads μεμονωμένα μεμονωμένα..
Υπάρχει «χώρος» γι αυτόΥπάρχει «χώρος» γι αυτό;;
![Page 19: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/19.jpg)
Simultaneous Subordinate Simultaneous Subordinate Microthreading (SSMT)Microthreading (SSMT)
Δηλαδή η παραγωγή επιπρόσθετων Δηλαδή η παραγωγή επιπρόσθετων microthreadsmicrothreads για τη βελτίωση του χρόνου για τη βελτίωση του χρόνου εκτέλεσης ενός – του κυρίως – εκτέλεσης ενός – του κυρίως – ThreadThread του του προγράμματοςπρογράμματος..
Τα Τα micro-micro- γεννώνται και εκτελούνται εκ γεννώνται και εκτελούνται εκ παραλλήλου με το κυρίως παραλλήλου με το κυρίως Thread.Thread.
Branch prediction accuracy – cache hit rate – Branch prediction accuracy – cache hit rate – prefetch effectivenessprefetch effectiveness
![Page 20: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/20.jpg)
![Page 21: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/21.jpg)
Micro-thread spawningMicro-thread spawning
Spawn instruction Spawn instruction ως μέρος της ως μέρος της ISA ISA (Instruction Set Architecture)(Instruction Set Architecture)
Event spawning : Event spawning : ένα προκαθορισμένο ένα προκαθορισμένο γεγονός κατά την εκτέλεση του κυρίως γεγονός κατά την εκτέλεση του κυρίως thread thread προκαλεί τη γέννηση του προκαλεί τη γέννηση του microthreadmicrothread..
![Page 22: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/22.jpg)
Πλεονεκτήματα της Πλεονεκτήματα της SSMTSSMT
SSMT vs Hardware basedSSMT vs Hardware based μηχανισμοί μηχανισμοί Hardware Hardware πολυπλοκότηταπολυπλοκότητα;; - αδιαφορία - αδιαφορία ΕυελιξίαΕυελιξία
Microthreads vs Microthreads vs απλά απλά ThreadsThreads Fetch – issue – ISAFetch – issue – ISA
Νέος επεξεργαστήςΝέος επεξεργαστής; ;
![Page 23: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/23.jpg)
Τα απαραίτητα υλικάΤα απαραίτητα υλικά
ISA ISA υποστήριξηυποστήριξη ( (εντολές για τη εντολές για τη micro-micro-RAMRAM, , spawn spawn εντολή, εντολή, microcontext) microcontext)
Compiler Compiler και και OSOS υποστήριξη υποστήριξη
Hardware Hardware υποστήριξηυποστήριξη (Micro- (Micro-RAM,decode/rename, microcontext RAM,decode/rename, microcontext support, register sets)support, register sets)
![Page 24: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/24.jpg)
Βελτιστοποιημένη εκτέλεσηΒελτιστοποιημένη εκτέλεση
BP : compiler synthesis of dynamic branch BP : compiler synthesis of dynamic branch prediction taken over by microthreadsprediction taken over by microthreads
Prefetching : prefetch explicitly (via spawn Prefetching : prefetch explicitly (via spawn instruction + routine ) or implicitly (spawn instruction + routine ) or implicitly (spawn on events + routine )on events + routine )
Cache management : e.g. adaptive Cache management : e.g. adaptive replacement policyreplacement policy
![Page 25: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/25.jpg)
Παράδειγμα : Παράδειγμα : BPBP
Hybrid scheme : Hybrid scheme : processor hardware processor hardware
predictorpredictor + microthread based + microthread based predictor (SSMT)predictor (SSMT)
SPAWN =>SPAWN => παραπάνω παραπάνω δουλειά. Τι πρέπει να δουλειά. Τι πρέπει να προσέχει κανείςπροσέχει κανείς;;
![Page 26: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/26.jpg)
ΠειράματαΠειράματα
BP BP
hardware predictor – 16KB gshare hardware predictor – 16KB gshare
Microthread routine – PAg implementationMicrothread routine – PAg implementation
Ποιές Ποιές branchesbranches αναλαμβάνονται από αναλαμβάνονται από microthreads; microthreads;
Compiler Selection HeuristicCompiler Selection Heuristic
![Page 27: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/27.jpg)
![Page 28: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/28.jpg)
Speculative Data-Driven Speculative Data-Driven MultithreadingMultithreading
Microthread Microthread >> Data-driven threadData-driven thread
Primary threadPrimary thread >> Control-driven threadControl-driven thread
SPAWNSPAWN >> FORKFORK
Critical instructions (branches, loads)Critical instructions (branches, loads)
Prediction cachePrediction cache >> integrationintegration
![Page 29: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/29.jpg)
![Page 30: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/30.jpg)
Extracting Threads from a Extracting Threads from a Program Trace (algo)Program Trace (algo)
Work backwards:Work backwards:
Misbehaving instance of a Misbehaving instance of a critical instruction is a critical instruction is a DDT candidate (1)DDT candidate (1)
add more a) such add more a) such instances or b) their instances or b) their memory memory dependences(3) dependences(3) I3->I2I3->I2
Trigger: last added instrTrigger: last added instr..
![Page 31: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/31.jpg)
Life cycle of a Data-Driven Life cycle of a Data-Driven ThreadThread
![Page 32: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/32.jpg)
Register IntegrationRegister Integration
Μηχανισμός που επιτρέπει την απο κοινού Μηχανισμός που επιτρέπει την απο κοινού επαναχρησιμοποίηση ήδη υπολογισμένων επαναχρησιμοποίηση ήδη υπολογισμένων αποτελεσμάτων μεταξύ διαφορετικών αποτελεσμάτων μεταξύ διαφορετικών execution contextsexecution contexts ενός προγράμματος ενός προγράμματος
Thread Thread <- <- DDTDDT
DDTDDT <-<- other DDTother DDT
DDTDDT <-<- ThreadThread
![Page 33: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/33.jpg)
Performance EvaluationPerformance Evaluation
8-wide SMT8-wide SMT
DDTC, cloaking DDTC, cloaking tabletable
Targeting Cache Targeting Cache misses : misses : latencies in L1latencies in L1
![Page 34: Multi-threading](https://reader036.fdocuments.net/reader036/viewer/2022062500/568152fa550346895dc11724/html5/thumbnails/34.jpg)
Performance Evaluation Performance Evaluation (contnd.)(contnd.)
Targeting Targeting Branch Branch MispredictMispredictionsions