340 likes | 507 Views
Multi-threading. Κορομηνάς Κωνσταντίνος – Μ 437 Χατζηανδρέου Ελένη - Μ400 Χήνου Διονυσία – Μ364. Εισαγωγή. Multithreading Simultaneous Multithreading (SM) Simultaneous Subordinate Microthreading (SSMT) Speculative Data-Driven Multithreading. Multithreaded. Synchronization Unit (SU)
E N D
Multi-threading Κορομηνάς Κωνσταντίνος – Μ437 Χατζηανδρέου Ελένη - Μ400 Χήνου Διονυσία – Μ364
Εισαγωγή • Multithreading • Simultaneous Multithreading (SM) • Simultaneous Subordinate Microthreading (SSMT) • Speculative Data-Driven Multithreading
Multithreaded • Synchronization Unit (SU) • Execution Unit (EU)
Synchronization Unit (SU) • Είναι αρμόδιο για την έκδοση των σημάτων ενεργοποίησης(fire signals) στην EU • Fire signal : <fp,ip> • Ready thread poll
Synchronization Signals • <‘spawn’, fp, ip> • <‘sync’, fp, ss_off>
Μηνύματα SU • Data Retrieval • <‘get’,addr_val, fp, ip> • <‘data’,addr_val, value, fp, ip> • Synchronization • <‘backto’, fp, fut_off, ss_off, value> • Thread migration • <‘thread’,f_size, frame_contents, ip>
Simultaneous Multithreading • Μια τεχνική που επιτρέπει σε διάφορα ανεξάρτητα threads να παρέχουνεντολές σε πολλαπλές λειτουργικές μονάδες σε κάθε κύκλο • Στόχος είναι να αυξηθεί ουσιαστικά η χρησιμοποίηση επεξεργαστών
Simultaneous MultithreadingMachine Models • Fine-Grain Multithreading • SM:Full Simultaneous Issue • SM:Single Issue,SM:Dual Issue, SM:Four Issue • SM:Limited Connection
Machine Models • Διαφορές Hardware
Cache Design [total I cache size inKB][private or shared].[D cache size][private or shared]
Πλεονεκτήματα SM έναντι MP • Απόδοση με λίγα threads • Granularity και ευελιξία σχεδιασμού
Πλεονεκτήματα SM • Καλύτερη ρυθμαπόδοση (throughput) • Καλύτερη από finegrainmultithreaded • Καλύτερη στην απόδοση από πολυεπεξεργαστή multipleissue
Μέρος Β΄Ή Με στόχο την αύξηση της ταχύτητας εκτέλεσης ενός προγράμματος, με άξονα την Threaded-tech.
Εντοπίζοντας το πρόβλημα… Αύξηση της αποδοτικότητας μιας multiprocessing αρχιτεκτονικής μέσω Threads – Multithreaded αρχιτεκτονική (γιατί;). Συνέπειες ως προς το χρόνο ολοκλήρωσης εκτέλεσης ενός προγράμματος μεμονωμένα;
Εντοπίζοντας το πρόβλημα(2)... ΖΗΤΕΙΤΑΙ : επιτάχυνση της εκτέλεσης των Threads μεμονωμένα. Υπάρχει «χώρος» γι αυτό;
Simultaneous Subordinate Microthreading (SSMT) Δηλαδή η παραγωγή επιπρόσθετων microthreads για τη βελτίωση του χρόνου εκτέλεσης ενός – του κυρίως – Thread του προγράμματος. Τα micro- γεννώνται και εκτελούνται εκ παραλλήλου με το κυρίως Thread. Branch prediction accuracy – cache hit rate – prefetch effectiveness
Micro-thread spawning Spawn instruction ως μέρος της ISA (Instruction Set Architecture) Event spawning : ένα προκαθορισμένο γεγονός κατά την εκτέλεση του κυρίως thread προκαλεί τη γέννηση του microthread.
Πλεονεκτήματα της SSMT SSMT vs Hardware based μηχανισμοί • Hardware πολυπλοκότητα; - αδιαφορία • Ευελιξία Microthreads vs απλά Threads • Fetch – issue – ISA Νέος επεξεργαστής;
Τα απαραίτητα υλικά • ISA υποστήριξη (εντολές για τη micro-RAM, spawn εντολή, microcontext) • Compiler και OS υποστήριξη • Hardware υποστήριξη (Micro-RAM,decode/rename, microcontext support, register sets)
Βελτιστοποιημένη εκτέλεση BP : compiler synthesis of dynamic branch prediction taken over by microthreads Prefetching : prefetch explicitly (via spawn instruction + routine ) or implicitly (spawn on events + routine ) Cache management : e.g. adaptive replacement policy
Παράδειγμα : BP Hybrid scheme : processor hardware predictor + microthread based predictor (SSMT) SPAWN => παραπάνω δουλειά. Τι πρέπει να προσέχει κανείς;
Πειράματα BP hardware predictor – 16KB gshare Microthread routine – PAg implementation Ποιές branches αναλαμβάνονται από microthreads; Compiler Selection Heuristic
Speculative Data-Driven Multithreading Microthread > Data-driven thread Primary thread > Control-driven thread SPAWN > FORK Critical instructions (branches, loads) Prediction cache > integration
Extracting Threads from a Program Trace (algo) Work backwards: Misbehaving instance of a critical instruction is a DDT candidate (1) add more a) such instances or b) their memory dependences(3) I3->I2 Trigger: last added instr.
Register Integration Μηχανισμός που επιτρέπει την απο κοινού επαναχρησιμοποίηση ήδη υπολογισμένων αποτελεσμάτων μεταξύ διαφορετικών execution contexts ενός προγράμματος Thread <- DDT DDT <- other DDT DDT <- Thread
Performance Evaluation 8-wide SMT DDTC, cloaking table Targeting Cache misses : latencies in L1
Performance Evaluation (contnd.) Targeting Branch Mispredictions