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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Ταχύτητα, Απλότητα & Αξιοπιστία. Αρχιτεκτονική Μηχανισμοί Αυτοελέγχου Συνδεσιμότητα Περιβάλλον Εργασίας Πληροφορίες Σχήματος Report Builder Import Manager.
Advertisements

Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
© Υπερβαθμωτή Οργάνωση Υπολογιστών Από τις βαθμωτές στις υπερβαθμωτές αρχιτεκτονικές αγωγού…
Υλοποίηση μεταφραστή C με επεκτάσεις OpenMP Λεοντιάδης Ηλίας Τζούμας Γεώργιος Πτυχιακή εργασία Τελική παρουσίαση Υπεύθυνος καθηγητής Β. Β. Δημακόπουλος.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Αρχιτεκτονική Υπολογιστών Γλώσσες Μηχανής
Handling Local Variables General Purpose Registers
ΠΡΟΣΟΜΟΙΩΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ
1 Α. Βαφειάδης Τ.Ε.Ι Θεσσαλονίκης – Τμήμα Πληροφορικής Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Εργαστηριακό Μέρος Μέρος: Τρίτο Εξάμηνο: Έβδομο Καθηγητής:
Πολυνηματικές Αρχιτεκτονικές & «Μη-Παραδοσιακός» Παραλληλισμός.
Πολυνηματικές Αρχιτεκτονικές
29/11/2004Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
1/12/2003Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) Σχεδίαση datapath 4 κατηγορίες εντολών: Αριθμητικές-λογικές.
Ανίχνευση κίνδυνου Επίλυση με προώθηση. Μπλέ: Εξαρτήσεις. Εξαρτήσεις προς προηγούμενα CC είναι κίνδυνοι δεδομένων Kόκκινο: Προώθηση IF/ID ID/EX EX/MEM.
Λύση: Multicycle υλοποίηση Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή.
NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 1.  Ένα thread έχει: ID, program counter, register set, stack  Μοιράζεται με τα άλλα threads της ίδιας διεργασίας.
ΠΡΟΣΟΜΟΙΩΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ. Εισαγωγή Έρευνα στην Αρχιτεκτονική Υπολογιστών – Σχεδίαση επεξεργαστή για την εκτέλεση 1 thread (pipeline, branch prediction)
Πολυνηματικές Αρχιτεκτονικές. Εισαγωγή  Η ενσωμάτωση πολλαπλών ροών εκτέλεσης αποτελεί πλέον μονόδρομο στην τεχνολογία των επεξεργαστών –Ελάχιστη ανταπόδοση.
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Α.Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση.
Πολυνηματικές Αρχιτεκτονικές.
Οργάνωση και Αρχιτεκτονική Υπολογιστών Βασικές αρχές Αρχιτεκτονικής
Memory Cloaking & Bypassing Εργασία στο μάθημα: Προηγμένες Αρχιτεκτονικές Υπολογιστών Κατσαρής Αριστοτέλης Μ473 Τσαγκάρης Γιώργος Μ479.
Multi-threading Κορομηνάς Κωνσταντίνος – Μ437
ΠΡΟΣΟΜΟΙΩΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Διαφάνειες από το MicroArch 35 Tutorial του Simics
Υπερβαθμωτή Οργάνωση Υπολογιστών. Περιορισμοί των βαθμωτών αρχιτεκτονικών Μέγιστο throughput: 1 εντολή/κύκλο ρολογιού (IPC≤1) Υποχρεωτική ροή όλων των.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Σύγχρονες Προκλήσεις. Εισαγωγή Οι CMP είναι πια πραγματικότητα – Intel Core 2, Quad, Nehalem – IBM Power5, Power6 – Sun Niagara, Niagara2, Rock –
Implicitly Multithreaded Processors Νίκος Ιωάννου EΠΛ605 Παρουσίαση άρθρου “IMT processors”
1 EPIC Νάνου Σπυριδούλα Α.Μ Explicitly Parallel Instruction Computing Ένα νέο στυλ αρχιτεκτονικής που σκοπό έχει: Τη δυνατότητα υψηλότερου επιπέδου.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
© Processor-Memory (DRAM) Διαφορά επίδοσης Performance
Intel’s P6 Processor Family Architecture
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Πολυνηματικές Αρχιτεκτονικές.
Αρχιτεκτονική Υπολογιστών Ενότητα # 3: Ιεραρχία Μνήμης Διδάσκων: Γεώργιος Κ. Πολύζος Τμήμα: Πληροφορικής.
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ Αρχιτεκτονική Υπολογιστών.
Αρχιτεκτονική Υπολογιστών DATAPATH & CONTROL. Αρχιτεκτονική Υπολογιστών DATAPATH & CONTROL Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: –Προσκόμιση.
Chapter 16 Control Unit Implemntation. A Basic Computer Model.
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Πολυνηματικές Αρχιτεκτονικές
Single-cyle υλοποίηση:
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
Κεντρική Μονάδα Επεξεργασίας
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Α.Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Επιβλέπων: Καθηγητής Εφαρμογών Δρ. Δημήτριος Βαρσάμης
Πολυνηματικές Αρχιτεκτονικές
Single-cyle υλοποίηση:
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Ι
Μνήμη τυχαίας προσπέλασης
Τα θέματα μας σήμερα Ηλεκτρονικοί υπολογιστές Υλικό και λογισμικό
Advanced Computer Architectures Cache Memories
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
Υλικό - Λογισμικό Υλικό (Hardware) Λογισμικό (Software)
Αρχιτεκτονική Υπολογιστών
Single-cyle υλοποίηση:
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Single-cyle υλοποίηση:
Single-cyle υλοποίηση:
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
Ανίχνευση Προσωρινών Σφαλμάτων μέσω Ταυτόχρονης Πολυνηματικής Εκτέλεσης (Transient Fault Detection via Simultaneous Multithreading) «Προχωρημένα Θέματα.
Μεταγράφημα παρουσίασης:

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

Εισαγωγή Multithreading Multithreading Simultaneous Multithreading (SM) Simultaneous Multithreading (SM) Simultaneous Subordinate Microthreading (SSMT) Simultaneous Subordinate Microthreading (SSMT) Speculative Data-Driven Multithreading Speculative Data-Driven Multithreading

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

Synchronization Unit (SU) Είναι αρμόδιο για την έκδοση των σημάτων ενεργοποίησης (fire signals) στην EU Είναι αρμόδιο για την έκδοση των σημάτων ενεργοποίησης (fire signals) στην EU Fire signal : Fire signal : Ready thread poll Ready thread poll

Synchronization Signals

Μηνύματα SU Data Retrieval Data Retrieval – – Synchronization Synchronization – – Thread migration Thread migration – –

Execution Unit (EU)

Simultaneous Multithreading Μια τεχνική που επιτρέπει σε διάφορα ανεξάρτητα threads να παρέχουν εντολές σε πολλαπλές λειτουργικές μονάδες σε κάθε κύκλο Μια τεχνική που επιτρέπει σε διάφορα ανεξάρτητα threads να παρέχουν εντολές σε πολλαπλές λειτουργικές μονάδες σε κάθε κύκλο Στόχος είναι να αυξηθεί ουσιαστικά η χρησιμοποίηση επεξεργαστών Στόχος είναι να αυξηθεί ουσιαστικά η χρησιμοποίηση επεξεργαστών

Simultaneous Multithreading Machine Models Fine-Grain Multithreading Fine-Grain Multithreading SM:Full Simultaneous Issue SM:Full Simultaneous Issue SM:Single Issue,SM:Dual Issue, SM:Four Issue SM:Single Issue,SM:Dual Issue, SM:Four Issue SM:Limited Connection SM:Limited Connection

Machine Models Διαφορές Hardware Διαφορές Hardware

Cache Design [total I cache size in KB] [private or shared].[D cache size] [private or shared]

SM vs. Single-Chip MP

Πλεονεκτήματα SM έναντι MP Απόδοση με λίγα threads Απόδοση με λίγα threads Granularity και ευελιξία σχεδιασμού Granularity και ευελιξία σχεδιασμού

Πλεονεκτήματα SM Καλύτερη ρυθμαπόδοση (throughput) Καλύτερη ρυθμαπόδοση (throughput) Καλύτερη από fine­grain multithreaded Καλύτερη από fine­grain multithreaded Καλύτερη στην απόδοση από πολυεπεξεργαστή multiple­issue Καλύτερη στην απόδοση από πολυεπεξεργαστή multiple­issue

Μέρος Β΄ Ή  Με στόχο την αύξηση της ταχύτητας εκτέλεσης ενός προγράμματος,  με άξονα την 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 πολυπλοκότητα; - αδιαφορία Hardware πολυπλοκότητα; - αδιαφορία Ευελιξία Ευελιξία Microthreads vs απλά Threads Fetch – issue – ISA Fetch – issue – ISA Νέος επεξεργαστής;

Τα απαραίτητα υλικά ISA υποστήριξη (εντολές για τη micro- RAM, spawn εντολή, microcontext) ISA υποστήριξη (εντολές για τη micro- RAM, spawn εντολή, microcontext) Compiler και OS υποστήριξη Compiler και OS υποστήριξη Hardware υποστήριξη (Micro- RAM,decode/rename, microcontext support, register sets) 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 + 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 add more a) such instances or b) their memory dependences(3) I3->I2 Trigger: last added instr.

Life cycle of a Data-Driven Thread

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 Mispredict ions