Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic, CS1/2-52, University of Berkeley. Αρχιτεκτονική Υπολογιστών, Ν. Κοζύρης, Εθνικό Μετσόβιο Πολυτεχνείο. Compaq: Simultaneous Multi-Threading (Alpha EV8) Silicon Graphics: Multiprocessor Architecture Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.
Αρχιτεκτονική Υπολογιστών Παραλληλισμός Επίπεδα Παραλληλισμού Παραλληλισμός επιπέδου Επεξεργαστή Παραλληλισμός επιπέδου Υπολογιστή Σύγκλιση Τεχνολογιών
Σύγχρονες Πολυεπίπεδες Μηχανές Εφαρμογές Πρόγραμμα γλώσσας υψηλού επιπέδου Πρόγραμμα γλώσσας assembly Συστήματα Αρχιτεκτονική Σενάριο ή κλήση συστήματος (μικτή γλώσσα) Πρόγραμμα σε γλώσσα μηχανής Μικροπρόγραμμα ή γλώσσα περιγραφής υλικού Οργάνωση Υπολογιστής έξι επιπέδων. Η μέθοδος υποστήριξης και η γλώσσα υλοποίησης σημειώνεται κάτω (δίπλα) από κάθε επίπεδο.
TOP 500, 13/06/08 4 cslab@ntua 2007-2008
Επίπεδα Παραλληλισμού Επίπεδο Εντολής (Instruction Level Parallelism, ILP): ταυτόχρονη εκτέλεση εντολών ενός προγράμματος. Επίπεδο Δεδομένων (Data Level Parallelism, DLP): ταυτόχρονη εκτέλεση πράξεων σε ομοειδή δεδομένα, σε ένα επεξεργαστή ή και σε συνεπεξεργαστές ειδικού σκοπού. Επίπεδο Εργασίας (Task/Thread Level Parallelism, Multithreading): ταυτόχρονη εκτέλεση πολλαπλών νημάτων (εργασιών). Επίπεδο Λειτουργίας (Functional Parallelism): ταυτόχρονη εκτέλεση λειτουργιών (GPU, DMA, I/O..) Επίπεδο Υπολογιστή/Υπολογισμού (Multiprocessors, Multicomputers): ταυτόχρονη εκτέλεση ενός ή διαφορετικών προγραμμάτων σε πολλαπλούς επεξεργαστές. Επίπεδο Δικτύου (Clusters, Distributed Systems, Grids): χωρο-χρονική κατανομή διακριτών υπολογισμών και εργασιών με χρόνους επικοινωνίας σημαντικά μεγαλύτελους από τους χρόνους υπολογισμού.
Παράλληλες Αρχιτεκτονικές (a) On-chip (b) coprocessor : Επίπεδο Επεξεργαστή. (c) multiprocessor (d) multicomputer : Επίπεδο Υπολογιστή. (e) Κατανεμημένο Σύστημα, Grid.
Αρχιτεκτονική Υπολογιστών Παραλληλισμός Επίπεδα Παραλληλισμού Παραλληλισμός επιπέδου Επεξεργαστή Παραλληλισμός επιπέδου Υπολογιστή Σύγκλιση Τεχνολογιών
Παραλληλισμός Επιπέδου Εντολής (ILP) Pipelining (Διοχέτευση, Σωλήνωση) (α) Μια διοχέτευση πέντε σταδίων (β) Η κατάσταση κάθε σταδίου σε εννέα κύκλους ρολογιού.
Παραλληλία Επιπέδου Εντολής (ILP) Υπερβαθμωτή (Superscalar) Αρχιτεκτονική (1) Διπλή διοχέτευση πέντε σταδίων με κοινή μονάδα προσκόμισης εντολής (Πρώτοι Pentium, η δεύτερη διοχέτευση μόνο για ακεραίους).
Παραλληλία Επιπέδου Εντολής (ILP) Υπερβαθμωτή (Superscalar) Αρχιτεκτονική (2) Υπερβαθμωτός επεξεργαστής με πέντε λειτουργικές μονάδες, τοποθετημένος σε διοχέτευση πέντε σταδίων (Pentim II).
(Πολλαπλή) Διοχέτευση + Εκτός Σειράς ή/και Υπερβαθμωτή Εκτέλεση + Πολλαπλά Νήματα = Πολυ-Νηματική Επεξεργασία (Multi Τhreading) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
On-Chip Multithreading (1) Multithreading με απλή διοχέτευση και εκτός σειράς εκτέλεση. (a) (c) Τρία νήματα. Τα άδεια πλαίσια σημβολίζουν stalls. (d) Fine-grained multithreading (1 cycle). (e) Coarse-grained multithreading (max 3 cycles).
On-Chip Multithreading (2) Multithreading με διπλή διοχέτευση και υπερβαθμωτή εκτέλεση. (a) Fine-grained multithreading (1 cycle, 2 stages). (b) Coarse-grained multithreading (max 2 cycles, 2 stages). (c) Simultaneous multithreading (any cycle, any stage).
Hyperthreading στο Pentium 4 Κατανομή πόρων μεταξύ νημάτων στη μικροαρχιτεκτονική Pentium 4 NetBurst.
Compaq Simultaneous Multi Threading (1) Κάθε στάδιο της διοχέτευσης λειτουργεί σαν 4 σχετικά ανεξάρτητοι επεξεργαστές. Επέκταση της Υπερβαθμωτής Επεξεργασίας σε όλα τα στάδια διοχέτευσης.
Compaq Simultaneous Multi Threading (2)
Παραλληλισμός Επιπέδου Δεδομένων (a) Massively Parallel Processors (MPPs): μια CPU πολλές ALUs σε διάταξη πίνακα 1 ή 2 διαστάσεων (Vectror - Array Processors). (b) Coprocessors, GPUs. Επίσης ειδικές εντολές σε Pentium, AMD, GPUs..
Αρχιτεκτονική Υπολογιστών Παραλληλισμός Επίπεδα Παραλληλισμού Παραλληλισμός επιπέδου Επεξεργαστή Παραλληλισμός επιπέδου Υπολογιστή Σύγκλιση Τεχνολογιών
Παραλληλία Επιπέδου Υπολογιστή (α) Σύστημα μοιραζόμενης μνήμης (Multiprocessors, SMPs). (β) Σύστημα κατανεμημένης μνήμης (Multicomputers, Clusters).
SGI-1
SGI-2
Distributed - Shared Memory Υλοποίηση μοιραζόμενης μνήμης σε διάφορα επίπδεα. (a) Υλικό (b) Λειτουργικό Σύστημα (c) Σύστημα Εκτέλεσης.
Clusters Networked Systems Τυπικό cluster, δικτυακός multicomputer. Μεταβίβαση μηνυμάτων (Message passing)
Ταξινόμηση Flynn (1) Flynn s taxonomy of parallel computers.
Ταξινόμηση Flynn (2)
Google (1) Επεξεργασία ερωτήματος στο Google.
Google (2) Τυπικό Google cluster.
Grid Computing Τα επίπεδα του Grid.
Αρχιτεκτονική Υπολογιστών Παραλληλισμός Επίπεδα Παραλληλισμού Παραλληλισμός επιπέδου Επεξεργαστή Παραλληλισμός επιπέδου Υπολογιστή Σύγκλιση Τεχνολογιών
'Κοινοί Τόποι' στην Αρχιτεκτονική Υπολογιστών 1. Η ενέργεια (ηλεκτρισμός) είναι φθηνή, το υλικό (ημιαγωγοί) είναι ακριβό. Τώρα: Power wall : Η ενέργεια είναι ακριβή! Το υλικό φθηνό: Μπορούμε να χωρέσουμε περισσότερα transistors από όσα μπορούμε να τροφοδοτήσουμε/ψύξουμε αποδοτικά. 2. Επαρκής αύξηση της απόδοσης: Παραλληλισμός σε Επίπεδο Εντολής (ILP) με τη βοήθεια μεταγλωττιστών και αρχιτεκτονικών βελτιώσεων (pipelining, superscalar, out-of-order, speculation, VLIW, ) Τώρα: ILP wall : μείωση του ρυθμού βελτίωσης της απόδοσης με τη πρόσθεση υλικού για περισσότερο ILP. 3. Οι πολλαπλασιασμοί είναι αργοί, η προσπέλαση μνήμης γρήγορη. Τώρα: Memory wall : Οι μνήμες είναι πια πολύ πιο αργές από τους επεξεργαστές (200 κύκλοι μηχανής για τη πρόσβαση στη DRAM, 4 κύκλοι για το πολλαπλασιασμό). 4. Η απόδοση των επεξεργαστών διπλασιάζεται κάθε 1.5 χρόνο. Τώρα: 'Ισως 5 χρόνια Power Wall + ILP Wall + Memory Wall = Brick Wall 05/12/08 30 CS252-s06, Lec 01-intro
Κατανάλωση ισχύος επεξεργαστών σε watts/cm2 31 cslab@ntua 2007-2008
Power Wall: προβολή του Nόμου του Moore 32 cslab@ntua 2007-2008
Απόδοση Επεξεργαστών
Συχνότητα ρολογιού Επεξεργαστή προς Ταχύτητα Διαύλου Μνήμης 34 cslab@ntua 2007-2008
Μemory Wall: Χάσμα Επεξεργαστή Μνήμης 1000 CPU processor 60%/yr Moore s Law Speed processor-memory performance gap: (grows 50% / yr) 100 (MHz) 10 DRAM memory 7%/yr 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 1 Time 35 cslab@ntua 2007-2008
Τέλος Εποχής του Ενός Επεξεργαστή: Πολλαπλοί 'Πυρήνες' (cores) Μια από τις μεγαλύτερες αλλαγές στην ιστορία των συστημάτων υπολογιστών Διπλασιασμός των επεξεργαστών (πυρήνων) ανά 2 χρόνια περίπου. Επέκταση του Simultaneous Multithreading σε συνδυασμό με ιεραρχία από τοπικές (κρυφές) μνήμες. Ουσιαστικά ανεξάρτητοι επεξεργαστές μοιραζόμενης μνήμης. Φαίνεται να επιλύει τα προβλήματα των : Power Wall, ILP Wall, Memory Wall. 05/12/08 CS252-s06, Lec 01-intro 36
Η επανάσταση που συμβαίνει σήμερα O «γνήσιος» νόμος του Moore συνεχίζει να ισχύει! Η πυκνότητα των κυκλωμάτων εξακολουθεί να αυξάνει ~2x κάθε 2 χρόνια Αλλά όχι η συχνότητα ρολογιού Θα διπλασιάζεται ο αριθμός των πυρήνων κάθε 2 χρόνια (?) Λίγος ή καθόλου ILP προς εκμετάλλευση. Ο παραλληλισμός πρέπει να μεταφερθεί στο σύστημα και το λογισμικό. Source: Intel, Microsoft (Sutter) and Stanford (Olukotun, Hammond) 37 cslab@ntua 2007-2008
Μια 'θάλασσα' επεξεργαστών; Intel 4004 (1971): 4-bit processor, 2312 transistors, 0.4 MHz, 10 micron PMOS, 11 mm2 chip RISC II (1983): 32-bit, 5 stage pipeline, 40,760 transistors, 3 MHz, 3 micron NMOS, 60 mm2 chip 125 mm2 chip, 0.065 micron CMOS = 2312 RISC II+FPU+Icache+Dcache RISC II shrinks to ~ 0.02 mm2 at 65 nm Caches via DRAM or 1 transistor SRAM? επεξεργαστής = νέο transistor; 05/12/08 38 CS252-s06, Lec 01-intro
Transistor+Computer = Transputer (1980-90) Οι πολυεπεξεργαστές πάντα υπήρχαν 1970s, 80s, 90s, today s processors are nearing an impasse as technologies approach the speed of light.. David Mitchell, The Transputer: The Time Is Now (1989)...αλλά μόνο ως συστήματα ειδικού σκοπού Custom multiprocessors tried to beat uniprocessors Procrastination rewarded: 2X seq. perf. / 1.5 years Τώρα όμως όλες οι μεγάλες εταιρίες συμφωνούν.. We are dedicating all of our future product development to multicore designs. This is a sea change in computing Paul Otellini, President, Intel (2004)..και στρέφονται στους πολυεπεξεργαστές (AMD, Intel, IBM, Sun; all new Apples 2+ CPUs, NVIDIA, PlayStation..) Procrastination penalized: 2X sequential perf. / 5 yrs Biggest programming challenge: from 1 to 2 CPUs 05/12/08 39 CS252-s06, Lec 01-intro
Παραλληλισμός: Σύκλιση Τεχνολογιών Έως το 1985: Παραλληλία σε επίπεδο bit: 4-bit -> 8 bit -> 16-bit 1985-1995: Παραλληλία σε επίπεδο εντολής (Instruction Level Parallelism, ILP) 1995: Παραλληλία σε επίπεδο διεργασίας (νήματος, thread) (Simultaneous Multithreading) 2004: Παραλληλία σε επίπεδο πυρήνων (cores) Έως το 1985: κυρίως Υπερυπολογιστές, Πειραματικά Συστήματα 1985 1990: VLSI, Transputers, Δίκτυα, Κατανεμημένα Συστήματα 1990 2000: Clusters, SMPs, Threads, Δίκτυα Υψηλής Απόδοσης, Grids 2004: Παραλληλία σε πολλαπλά επίπεδα (πυρήνες, threads, επεξεργαστές, clusters, Grids) 40 cslab@ntua 2007-2008
Προβλήματα και προκλήσεις Αλλαγή προγραμματιστικού μοντέλου Αλγόριθμοι, Γλώσσες, Μεταγλωττιστές, Λειτουργικά Συστήματα, Αρχιτεκτονικές, Βιβλιοθήκες.. δεν είναι έτοιμα για Παραλληλισμό σε Επίπεδο Δεδομένων ή Διεργασίας(Νήματος). Σε αντίθεση με το Παραλληλισμό σε Επίπεδο Ετολής (ILP) το πρόβλημα μάλλον δεν μπορεί να λυθεί από τους 'αρχιτέκτονες' και τους 'μηχανικούς συστημάτων' χωρίς συνεργασία των προγραμματιστών εφαρμογών. Πιθανώς να χρειαστεί ανασχεδιασμός των επιπέδων αφαίρεσης (εικονικών μηχανών) στα σύγχρονα υπολογιστικά συστήματα. 05/12/08 41 CS252-s06, Lec 01-intro
Intel Itanium 05/12/08 42 CS252-s06, Lec 01-intro
ALUs (4) 256KB local memory EIB regfile 128x128 FPUs (4) DMA, I/O Controllers 256KB local memory 256KB local memory regfile 128x128 ALUs (4) 256KB local memory regfile 128x128 FPUs (4) 256KB local memory regfile 128x128 ALUs (4) regfile 128x128 FPUs (4) 256KB local memory 256KB local memory regfile 128x128 ALUs (4) regfile 128x128 FPUs (4) 256KB local memory regfile 128x128 IΒΜ Cell (1) 512K L2 I$ D$ 64-bit SMT Power core, 2x in-order superscalar 05/12/08 FPUs (4) ALUs (4) FPUs (4) ALUs (4) FPUs (4) ALUs (4) FPUs (4) ALUs (4) 43 CS252-s06, Lec 01-intro
IΒΜ Cell (2) 05/12/08 44 CS252-s06, Lec 01-intro
Intel Dunnington, 12/09/08 6 Pentium cores, ~90GFlops 05/12/08 45 CS252-s06, Lec 01-intro
Σύστημα πολλαπλών πυρήνων ειδικού σκοπού. Κάθε πυρήνας ασχολείται με άλλη εργασία.
NVIDIA GPU G800GL 05/12/08 47 CS252-s06, Lec 01-intro
NVIDIA Tesla, τέλος 2008 200+ επεξεργαστές, 4 Tflops 05/12/08 48 CS252-s06, Lec 01-intro
Σύγχρονες Πολυεπίπεδες Μηχανές (νέο) Εφαρμογές Συστήματα Παραλληλισμός Αρχιτεκτονική Οργάνωση Υπολογιστής επτά επιπέδων (;). Η μέθοδος υποστήριξης του παραλληλισμού βρίσκεται μεταξύ υλικού και λογισμικού, μάλλον προς το λογισμικό..