Multi-threading

34
Multi-threading Multi-threading Κορομηνάς Κωνσταντίνος – Μ Κορομηνάς Κωνσταντίνος – Μ 437 437 Χατζηανδρέου Ελένη - Μ400 Χατζηανδρέου Ελένη - Μ400 Χήνου Διονυσία – Μ364 Χήνου Διονυσία – Μ364

description

Multi-threading. Κορομηνάς Κωνσταντίνος – Μ 437 Χατζηανδρέου Ελένη - Μ400 Χήνου Διονυσία – Μ364. Εισαγωγή. Multithreading Simultaneous Multithreading (SM) Simultaneous Subordinate Microthreading (SSMT) Speculative Data-Driven Multithreading. Multithreaded. Synchronization Unit (SU) - PowerPoint PPT Presentation

Transcript of Multi-threading

Page 1: Multi-threading

Multi-threadingMulti-threading

Κορομηνάς Κωνσταντίνος – ΜΚορομηνάς Κωνσταντίνος – Μ437437

Χατζηανδρέου Ελένη - Μ400Χατζηανδρέου Ελένη - Μ400

Χήνου Διονυσία – Μ364Χήνου Διονυσία – Μ364

Page 2: Multi-threading

ΕισαγωγήΕισαγωγή

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

Multithreaded Multithreaded

Synchronization Unit (SU)Synchronization Unit (SU) Execution Unit (EU)Execution Unit (EU)

Page 4: Multi-threading

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

Synchronization SignalsSynchronization Signals

<‘<‘spawnspawn’, fp, ip>’, fp, ip> <‘<‘syncsync’, fp, ss_off>’, fp, ss_off>

Page 6: Multi-threading

Μηνύματα Μηνύματα 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

Execution Unit (EU)Execution Unit (EU)

Page 8: Multi-threading

Simultaneous MultithreadingSimultaneous Multithreading

ΜιΜια τεχνική που επιτρέπει σε α τεχνική που επιτρέπει σε διάφορα ανεξάρτητα διάφορα ανεξάρτητα threadsthreads να να παρέχουνπαρέχουν εντολές εντολές σσεε πολλαπλ πολλαπλέές ς λειτουργικές μονάδες λειτουργικές μονάδες σε σε κάθε κάθε κύκλοκύκλο

ΣΣτόχος είναι να αυξηθεί τόχος είναι να αυξηθεί ουσιαστικά η χρησιμοποίηση ουσιαστικά η χρησιμοποίηση επεξεργαστώνεπεξεργαστών

Page 9: Multi-threading

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

Machine ModelsMachine Models

Διαφορές Διαφορές HardwareHardware

Page 11: Multi-threading
Page 12: Multi-threading

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

SM vs. Single-Chip MPSM vs. Single-Chip MP

Page 14: Multi-threading

Πλεονεκτήματα Πλεονεκτήματα SM SM έναντι έναντι MPMP

ΑΑπόδοση με λίγα πόδοση με λίγα threadsthreads Granularity Granularity και ευελιξία και ευελιξία

σχεδσχεδιασμούιασμού

Page 15: Multi-threading

Πλεονεκτήματα Πλεονεκτήματα SMSM

Καλύτερη ρυθμαπόδοση (Καλύτερη ρυθμαπόδοση (throughputthroughput)) Καλύτερη από Καλύτερη από finefine graingrain

multithreadedmultithreaded Καλύτερη στηνΚαλύτερη στην απόδοση από απόδοση από

πολυεπεξεργαστή πολυεπεξεργαστή multiplemultiple issueissue

Page 16: Multi-threading

Μέρος Β΄Μέρος Β΄

ΉΉΜε στόχο την αύξηση της Με στόχο την αύξηση της ταχύτηταςταχύτητας εκτέλεσης ενός προγράμματοςεκτέλεσης ενός προγράμματος,,με άξονα την με άξονα την ThreadedThreaded--techtech..

Page 17: Multi-threading

Εντοπίζοντας το πρόβλημαΕντοπίζοντας το πρόβλημα……

Αύξηση της αποδοτικότητας μιας Αύξηση της αποδοτικότητας μιας multiprocessingmultiprocessing αρχιτεκτονικής μέσω αρχιτεκτονικής μέσω Threads – MultithreadedThreads – Multithreaded αρχιτεκτονική αρχιτεκτονική ((γιατίγιατί;;))..

Συνέπειες ως προς το χρόνο ολοκλήρωσης Συνέπειες ως προς το χρόνο ολοκλήρωσης εκτέλεσης ενός προγράμματος μεμονωμέναεκτέλεσης ενός προγράμματος μεμονωμένα;;

Page 18: Multi-threading

Εντοπίζοντας το πρόβλημα(2)...Εντοπίζοντας το πρόβλημα(2)...

ΖΗΤΕΙΤΑΙ : επιτάχυνση της εκτέλεσης των ΖΗΤΕΙΤΑΙ : επιτάχυνση της εκτέλεσης των ThreadsThreads μεμονωμένα μεμονωμένα..

Υπάρχει «χώρος» γι αυτόΥπάρχει «χώρος» γι αυτό;;

Page 19: Multi-threading

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
Page 21: Multi-threading

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

Πλεονεκτήματα της Πλεονεκτήματα της SSMTSSMT

SSMT vs Hardware basedSSMT vs Hardware based μηχανισμοί μηχανισμοί Hardware Hardware πολυπλοκότηταπολυπλοκότητα;; - αδιαφορία - αδιαφορία ΕυελιξίαΕυελιξία

Microthreads vs Microthreads vs απλά απλά ThreadsThreads Fetch – issue – ISAFetch – issue – ISA

Νέος επεξεργαστήςΝέος επεξεργαστής; ;

Page 23: Multi-threading

Τα απαραίτητα υλικάΤα απαραίτητα υλικά

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

Βελτιστοποιημένη εκτέλεσηΒελτιστοποιημένη εκτέλεση

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

Παράδειγμα : Παράδειγμα : BPBP

Hybrid scheme : Hybrid scheme : processor hardware processor hardware

predictorpredictor + microthread based + microthread based predictor (SSMT)predictor (SSMT)

SPAWN =>SPAWN => παραπάνω παραπάνω δουλειά. Τι πρέπει να δουλειά. Τι πρέπει να προσέχει κανείςπροσέχει κανείς;;

Page 26: Multi-threading

ΠειράματαΠειράματα

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
Page 28: Multi-threading

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
Page 30: Multi-threading

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

Life cycle of a Data-Driven Life cycle of a Data-Driven ThreadThread

Page 32: Multi-threading

Register IntegrationRegister Integration

Μηχανισμός που επιτρέπει την απο κοινού Μηχανισμός που επιτρέπει την απο κοινού επαναχρησιμοποίηση ήδη υπολογισμένων επαναχρησιμοποίηση ήδη υπολογισμένων αποτελεσμάτων μεταξύ διαφορετικών αποτελεσμάτων μεταξύ διαφορετικών execution contextsexecution contexts ενός προγράμματος ενός προγράμματος

Thread Thread <- <- DDTDDT

DDTDDT <-<- other DDTother DDT

DDTDDT <-<- ThreadThread

Page 33: Multi-threading

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

Performance Evaluation Performance Evaluation (contnd.)(contnd.)

Targeting Targeting Branch Branch MispredictMispredictionsions