Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. 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 Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.
Αρχιτεκτονική Υπολογιστών Παραλληλισμός Επίπεδα Παραλληλισμού Παραλληλισμός επιπέδου Επεξεργαστή Παραλληλισμός επιπέδου Υπολογιστή Σύγκλιση Τεχνολογιών
Επίπεδα Παραλληλισμού Επίπεδο Δεδομένων (Data Level Parallelism, DLP): ταυτόχρονη εκτέλεση πράξεων σε ομοειδή δεδομένα, σεalu, κυλώματα ή και συνεπεξεργαστές ειδικού σκοπού, (32/64 bits, εσωτερικό GPU). Επίπεδο Εντολής (Instruction Level Parallelism, ILP): ταυτόχρονη εκτέλεση διαφορετικών εντολών ενός προγράμματος (Υπερβαθμωτή εκτέλεση, Διοχέτευση). Επίπέδο Εργασίας (Task/Thread Level Parallelism, Multithreading): ταυτόχρονη εκτέλεση πολλαπλών νημάτων (διεργασιών). Επίπέδο Λειτουργίας (Functional Parallelism): ταυτόχρονη εκτέλεση λειτουργιών (συνεπεξεργαστές GPU, DMA, I/O..) Επίπέδο Υπολογιστή/Υπολογισμού (Multiprocessors, Multicomputers): ταυτόχρονη εκτέλεση ενός ή διαφορετικών προγραμμάτων σε πολλαπλούς επεξεργαστές.
Παράλληλες Αρχιτεκτονικές Network Local Network (a) On-chip (b) coprocessor : Επίπεδο Επεξεργαστή. (c) multiprocessor (d) multicomputer : Επίπεδο Υπολογιστή. (e) Κατανεμημένο Σύστημα, Grid.
Παραλληλισμός Επιπέδου Εντολής (ILP) Pipelining (Διοχέτευση, Σωλήνωση) (α) Μια διοχέτευση πέντε σταδίων (β) Η κατάσταση κάθε σταδίου σε εννέα κύκλους ρολογιού.
Παραλληλία Επιπέδου Εντολής (ILP) Υπερβαθμωτή (Superscalar) Αρχιτεκτονική Υπερβαθμωτός επεξεργαστής με πέντε λειτουργικές μονάδες, τοποθετημένος σε διοχέτευση πέντε σταδίων (Pentim II).
Υπερβαθμωτή Αρχιτεκτονική (2) Execute unit Διπλή διοχέτευση και πολλαπλές μονάδες εκτέλεσης Κάθε διοχέτευση μπορεί να εκτελεί μια ανεξάρτητη ροή εντολών (Νήμα) Execute unit Execute unit Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
On-Chip Multithreading (1) Πολυ-νηματική εκτέλεση με απλή διοχέτευση και εκτός σειράς εκτέλεση. (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..
Παραλληλισμός Επιπέδου Υπολογιστή computer Switch Network (α) Σύστημα μοιραζόμενης μνήμης (Multiprocessors, Multicores, SMPs). (β) Σύστημα κατανεμημένης μνήμης (Multicomputers, Clusters).
Clusters Networked Systems Τυπικό cluster, δικτυακός multicomputer. Μεταβίβαση μηνυμάτων (Message passing)
Ταξινόμηση Flynn Flynn s taxonomy of parallel computers.
Google (1) Επεξεργασία ερωτήματος στο Google.
Google (2) Τυπικό Google cluster.
'Κοινοί Τόποι' στην Αρχιτεκτονική Υπολογιστών 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 22/09/10 19
Κατανάλωση ισχύος επεξεργαστών σε watts/cm2 20
Power Wall: προβολή του Nόμου του Moore 21
Απόδοση Επεξεργαστών
Συχνότητα ρολογιού Επεξεργαστή προς Ταχύτητα Διαύλου Μνήμης 23
Μemory Wall: Χάσμα Επεξεργαστή Μνήμης 1000 CPU processor 60%/yr Moore s Law Speed processor-memory performance gap: (grows 50% / yr) 100 (MHz) 10 DRAM 2000 1999 1998 1997 1996 1995 1994 1993 1992 1991 1990 1989 1988 1987 1986 1985 1984 1983 1982 1981 1980 1 Time 24 memory 7%/yr
Τέλος Εποχής του Ενός Επεξεργαστή: Πολλαπλοί 'Πυρήνες' (cores) Μια από τις μεγαλύτερες αλλαγές στην ιστορία των συστημάτων υπολογιστών Διπλασιασμός των επεξεργαστών (πυρήνων) ανά 2 χρόνια περίπου. Επέκταση του Simultaneous Multithreading σε συνδυασμό με ιεραρχία από τοπικές (κρυφές) μνήμες. Ουσιαστικά ανεξάρτητοι επεξεργαστές μοιραζόμενης μνήμης. Φαίνεται να επιλύει τα προβλήματα των : Power Wall, ILP Wall, Memory Wall. 22/09/10 25
Η επανάσταση που συμβαίνει σήμερα O «γνήσιος» νόμος του Moore συνεχίζει να ισχύει! Η πυκνότητα των κυκλωμάτων εξακολουθεί να αυξάνει ~2x κάθε 2 χρόνια Αλλά όχι η συχνότητα ρολογιού Θα διπλασιάζεται ο αριθμός των πυρήνων κάθε 2 χρόνια (?) Λίγος ή καθόλου ILP προς εκμετάλλευση. Ο παραλληλισμός πρέπει να μεταφερθεί στο σύστημα και το λογισμικό. Source: Intel, Microsoft (Sutter) and Stanford (Olukotun, Hammond) 26
Μια 'θάλασσα' επεξεργαστών; 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; 22/09/10 27
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 22/09/10 28
Παραλληλισμός: Σύκλιση Τεχνολογιών Έως το 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) 29
Προβλήματα και προκλήσεις Αλλαγή προγραμματιστικού μοντέλου Αλγόριθμοι, Γλώσσες, Μεταγλωττιστές, Λειτουργικά Συστήματα, Αρχιτεκτονικές, Βιβλιοθήκες.. δεν είναι έτοιμα για Παραλληλισμό σε Επίπεδο Δεδομένων ή Διεργασίας(Νήματος). Σε αντίθεση με το Παραλληλισμό σε Επίπεδο Ετολής (ILP) το πρόβλημα μάλλον δεν μπορεί να λυθεί από τους 'αρχιτέκτονες' και τους 'μηχανικούς συστημάτων' χωρίς συνεργασία των προγραμματιστών εφαρμογών. Πιθανώς να χρειαστεί ανασχεδιασμός των επιπέδων αφαίρεσης (εικονικών μηχανών) στα σύγχρονα υπολογιστικά συστήματα. 22/09/10 30
Intel Itanium 22/09/10 31
IΒΜ Cell (1) 22/09/10 256KB local memory 256KB local memory 256KB local memory regfile 128x128 ALUs (4) 256KB local memory EIB regfile 128x128 FPUs (4) DMA, I/O Controllers 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 regfile 128x128 ALUs (4) regfile 128x128 FPUs (4) 512K L2 I$ D$ 64-bit SMT Power core, 2x in-order superscalar 32 FPUs (4) ALUs (4) FPUs (4) ALUs (4) FPUs (4) ALUs (4) FPUs (4) ALUs (4)
IΒΜ Cell (2) 22/09/10 33
Intel Dunnington, 12/09/08 6 Pentium cores, ~90GFlops 22/09/10 34
Σύστημα πολλαπλών πυρήνων ειδικού σκοπού. Κάθε πυρήνας ασχολείται με άλλη εργασία.
NVIDIA GPU G800GL 22/09/10 36
NVIDIA Tesla, τέλος 2008 200+ επεξεργαστές, 4 Tflops 22/09/10 37