Multi-threading
description
Transcript of Multi-threading
Multi-threadingMulti-threading
Κορομηνάς Κωνσταντίνος – ΜΚορομηνάς Κωνσταντίνος – Μ437437
Χατζηανδρέου Ελένη - Μ400Χατζηανδρέου Ελένη - Μ400
Χήνου Διονυσία – Μ364Χήνου Διονυσία – Μ364
ΕισαγωγήΕισαγωγή
MultithreadingMultithreading Simultaneous Multithreading (SM)Simultaneous Multithreading (SM) Simultaneous Subordinate Microthreading Simultaneous Subordinate Microthreading
(SSMT)(SSMT) Speculative Data-Driven MultithreadingSpeculative Data-Driven Multithreading
Multithreaded Multithreaded
Synchronization Unit (SU)Synchronization Unit (SU) Execution Unit (EU)Execution Unit (EU)
Synchronization Unit (SU)Synchronization Unit (SU)
ΕΕίναι αρμόδιο για την έκδοση των ίναι αρμόδιο για την έκδοση των σημάτων σημάτων ενεργοποίησηςενεργοποίησης ((fire fire signalssignals) ) στην στην EUEU
Fire signal :Fire signal : < <fp,ipfp,ip>> Ready thread pollReady thread poll
Synchronization SignalsSynchronization Signals
<‘<‘spawnspawn’, fp, ip>’, fp, ip> <‘<‘syncsync’, fp, ss_off>’, fp, ss_off>
Μηνύματα Μηνύματα 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>>
Execution Unit (EU)Execution Unit (EU)
Simultaneous MultithreadingSimultaneous Multithreading
ΜιΜια τεχνική που επιτρέπει σε α τεχνική που επιτρέπει σε διάφορα ανεξάρτητα διάφορα ανεξάρτητα threadsthreads να να παρέχουνπαρέχουν εντολές εντολές σσεε πολλαπλ πολλαπλέές ς λειτουργικές μονάδες λειτουργικές μονάδες σε σε κάθε κάθε κύκλοκύκλο
ΣΣτόχος είναι να αυξηθεί τόχος είναι να αυξηθεί ουσιαστικά η χρησιμοποίηση ουσιαστικά η χρησιμοποίηση επεξεργαστώνεπεξεργαστών
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
Machine ModelsMachine Models
Διαφορές Διαφορές HardwareHardware
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]
SM vs. Single-Chip MPSM vs. Single-Chip MP
Πλεονεκτήματα Πλεονεκτήματα SM SM έναντι έναντι MPMP
ΑΑπόδοση με λίγα πόδοση με λίγα threadsthreads Granularity Granularity και ευελιξία και ευελιξία
σχεδσχεδιασμούιασμού
Πλεονεκτήματα Πλεονεκτήματα SMSM
Καλύτερη ρυθμαπόδοση (Καλύτερη ρυθμαπόδοση (throughputthroughput)) Καλύτερη από Καλύτερη από finefine graingrain
multithreadedmultithreaded Καλύτερη στηνΚαλύτερη στην απόδοση από απόδοση από
πολυεπεξεργαστή πολυεπεξεργαστή multiplemultiple issueissue
Μέρος Β΄Μέρος Β΄
ΉΉΜε στόχο την αύξηση της Με στόχο την αύξηση της ταχύτηταςταχύτητας εκτέλεσης ενός προγράμματοςεκτέλεσης ενός προγράμματος,,με άξονα την με άξονα την ThreadedThreaded--techtech..
Εντοπίζοντας το πρόβλημαΕντοπίζοντας το πρόβλημα……
Αύξηση της αποδοτικότητας μιας Αύξηση της αποδοτικότητας μιας multiprocessingmultiprocessing αρχιτεκτονικής μέσω αρχιτεκτονικής μέσω Threads – MultithreadedThreads – Multithreaded αρχιτεκτονική αρχιτεκτονική ((γιατίγιατί;;))..
Συνέπειες ως προς το χρόνο ολοκλήρωσης Συνέπειες ως προς το χρόνο ολοκλήρωσης εκτέλεσης ενός προγράμματος μεμονωμέναεκτέλεσης ενός προγράμματος μεμονωμένα;;
Εντοπίζοντας το πρόβλημα(2)...Εντοπίζοντας το πρόβλημα(2)...
ΖΗΤΕΙΤΑΙ : επιτάχυνση της εκτέλεσης των ΖΗΤΕΙΤΑΙ : επιτάχυνση της εκτέλεσης των ThreadsThreads μεμονωμένα μεμονωμένα..
Υπάρχει «χώρος» γι αυτόΥπάρχει «χώρος» γι αυτό;;
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
Micro-thread spawningMicro-thread spawning
Spawn instruction Spawn instruction ως μέρος της ως μέρος της ISA ISA (Instruction Set Architecture)(Instruction Set Architecture)
Event spawning : Event spawning : ένα προκαθορισμένο ένα προκαθορισμένο γεγονός κατά την εκτέλεση του κυρίως γεγονός κατά την εκτέλεση του κυρίως thread thread προκαλεί τη γέννηση του προκαλεί τη γέννηση του microthreadmicrothread..
Πλεονεκτήματα της Πλεονεκτήματα της SSMTSSMT
SSMT vs Hardware basedSSMT vs Hardware based μηχανισμοί μηχανισμοί Hardware Hardware πολυπλοκότηταπολυπλοκότητα;; - αδιαφορία - αδιαφορία ΕυελιξίαΕυελιξία
Microthreads vs Microthreads vs απλά απλά ThreadsThreads Fetch – issue – ISAFetch – issue – ISA
Νέος επεξεργαστήςΝέος επεξεργαστής; ;
Τα απαραίτητα υλικάΤα απαραίτητα υλικά
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)
Βελτιστοποιημένη εκτέλεσηΒελτιστοποιημένη εκτέλεση
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
Παράδειγμα : Παράδειγμα : BPBP
Hybrid scheme : Hybrid scheme : processor hardware processor hardware
predictorpredictor + microthread based + microthread based predictor (SSMT)predictor (SSMT)
SPAWN =>SPAWN => παραπάνω παραπάνω δουλειά. Τι πρέπει να δουλειά. Τι πρέπει να προσέχει κανείςπροσέχει κανείς;;
ΠειράματαΠειράματα
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
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
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..
Life cycle of a Data-Driven Life cycle of a Data-Driven ThreadThread
Register IntegrationRegister Integration
Μηχανισμός που επιτρέπει την απο κοινού Μηχανισμός που επιτρέπει την απο κοινού επαναχρησιμοποίηση ήδη υπολογισμένων επαναχρησιμοποίηση ήδη υπολογισμένων αποτελεσμάτων μεταξύ διαφορετικών αποτελεσμάτων μεταξύ διαφορετικών execution contextsexecution contexts ενός προγράμματος ενός προγράμματος
Thread Thread <- <- DDTDDT
DDTDDT <-<- other DDTother DDT
DDTDDT <-<- ThreadThread
Performance EvaluationPerformance Evaluation
8-wide SMT8-wide SMT
DDTC, cloaking DDTC, cloaking tabletable
Targeting Cache Targeting Cache misses : misses : latencies in L1latencies in L1
Performance Evaluation Performance Evaluation (contnd.)(contnd.)
Targeting Targeting Branch Branch MispredictMispredictionsions