Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εισαγωγή 9 ο Εξάμηνο
Περιεχόμενο μαθήματος Ζητήματα παράλληλων αρχιτεκτονικών Κατηγορίες παράλληλων αρχιτεκτονικών Δίκτυα διασύνδεσης Παράλληλος προγραμματισμός Σχεδιασμός παράλληλων προγραμμάτων Ζητήματα υλοποίησης: προγραμματιστικά μοντέλα, γλώσσες και εργαλεία Αλληλεπίδραση εφαρμογών αρχιτεκτονικής Εργαστήριο και εργασίες: Παραλληλοποίηση προγραμμάτων Μετρήσεις επίδοσης
Διαδικαστικά Διαλέξεις: Τρίτη 16:15 19:00, Αίθουσα 06 Εργαστήριο: Ίδιες ώρες με τις διαλέξεις, είτε στο Εργαστήριο Υπολογιστικών Συστημάτων είτε στην αίθουσα Σχήμα βαθμολογίας: 50% γραπτό, 50% εργαστήριο (μπορεί να υπάρξουν μικρές αλλαγές) Βιβλίο σημειώσεις:, Γ. Παπακωνσταντίνου, Θ. Θεοχάρης, Π. Τσανάκας Σημειώσεις Διαφάνειες μαθημάτων Λίστα μαθήματος: http://lists.cslab.ece.ntua.gr/mailman/listinfo/parlab //lit lb t / il /liti / lb Γραφτείτε στη λίστα!: Ερωτήσεις απορίες Ανακοινώσεις (επίσημες!) ί
Διαφημίζοντας το μάθημα Η παραλληλία υπάρχει οπουδήποτε υπάρχουν πολλαπλές λειτουργικές μονάδες: στην παραγωγή, στην κατασκευή, κλπ, δηλαδή σχεδόν παντού! Παραλληλία στα υπολογιστικά συστήματα: Στο εσωτερικό του επεξεργαστή: ILP και pipelines vector processing Στο επίπεδο του λειτουργικού για την αξιοποίηση των πόρων του συστήματος (CPU, I/O devices) Σε πολυπύρηνα συστήματα Σε υπερυπολογιστικά συστήματα με χιλιάδες επεξεργαστές Παράλληλος προγραμματισμός Παραδοσιακά για επιστημονικές εφαρμογές σε υπερυπολογιστές Πρόσφατα για ΟΛΕΣ τις εφαρμογές σε πολυπύρηνους επεξεργαστές Ο παράλληλος προγραμματισμός είναι επιτέλους trendy!!!
Τι θα μάθω Ζητήματα αρχιτεκτονικής που αφορούν τα συστήματα παράλληλης επεξεργασίας Ποιες είναι οι μεγάλες αρχιτεκτονικές κλάσεις παράλληλων συστημάτων Πως διασυνδέονται οι υπολογιστικοί κόμβοι (δίκτυα διασύνδεσης) «Μεθοδολογίες» σχεδίασης παράλληλων προγραμμάτων Γλώσσες, προγραμματιστικά μοντέλα και εργαλεία παράλληλου προγραμματισμού: MPI OpenMP CUDA Cilk PGAS
Supercomputers Για δεκαετίες: parallel computing = supercomputing Συνεργασία πολλών επεξεργαστών για την επίλυση επιστημονικών προβλημάτων: Επιστήμες μηχανικού (ρευστοδυναμική, στατική, κλπ) Επιστήμες της γης και του διαστήματος (πρόγνωση καιρού/σεισμών/πυρκαγιάς, μαγνητικές καταιγίδες, αστρονομία, κοσμολογία, κλπ) Επιστήμες της ζωής (ανάλυση DNA, πρωτεϊνών) Οικονομικές επιστήμες Κοινωνικές επιστήμες Εφαρμογές number crunching με ακόρεστη «δίψα» για υπολογιστική δύναμη Πλατφόρμα εκτέλεσης: υπερυπολογιστές με χιλιάδες επεξεργαστικές μονάδες
www.top500.org
www.top500.org
Top systems
Κλάσεις Υπολογιστών Υψηλών Επιδόσεων Δύο μεγάλες αρχιτεκτονικές κλάσεις: Cluster: εμπορικό δίκτυο διασύνδεσης και μέρη Πλεονεκτήματα : Οικονομικότερες λύσεις Ευκολία στην συναρμολόγηση, ρύθμιση και λειτουργία Μειονεκτήματα : Λιγότερο «κλιμακώσιμο» (?) «Μετριότερη» επίδοση (?) Περισσότερο ενεργοβόρο Custom built: ειδικά κατασκευασμένο δίκτυο διασύνδεσης Πλεονεκτήματα : «Κλιμακώσιμο» Υψηλή επίδοση Χαμηλότερη κατανάλωση ενέργειας Μειονεκτήματα : Υψηλό κόστος
Ταξινόμηση ΥΥΕ Υποκλάσεις (τύποι): Cluster(*): Homogeneous cluster: βασίζεται σε ομογενείς CPUs Heterogeneous cluster: βασίζεται σε ετερογενείς CPUs Custom built: Άλλοι όροι MPP(*): Super scalar CPU με μέτριο ή χωρίς πολυνηματισμό Vector: Κόμβοι διανυσματικών μονάδων MMT: Μαζικά πολυνηματικές CPUs Thin cluster node: μικρό μέγεθος υπολογιστικών μονάδων, μνήμης και Ι/Ο (π.χ. 2 4 πυρήνες) Fat cluster node: μεγάλο μέγεθος υπολογιστικών μονάδων, μνήμης και Ι/Ο (π.χ.. Περισσότεροι από 16 πυρήνες) Constellation (*) συστοιχία P 1 κόμβων με P 2 πυρήνες (P 2 >P 1 ) Accelerated: κόμβοι περιλαμβάνουν επιταχυντές HW (π.χ. GP GPU, FPGA) (*) όροι TOP500
Σύνοψη ταξινόμησης ΥΥΕ ΥΥΕ Αρχιτεκτονική κλάση Συστοιχία (cluster) Ειδικά κατασκευασμένο σύστημα (custom-made system) Ομογενής συστοιχία (homogeneous cluster) Ετερογενής συστοιχία (heterogeneous cluster) Αρχιτεκτονικός τύπος Συστοιχία με λεπτούς κόμβους (thin-node cluster) Συστοιχία με αδρούς κόμβους (fat-node cluster) MPP Vector MMT Αστερισμός (constellation)
Timeline: distribution of architectures in Top500 Clusters progressively dominate TOP500 list Currently: 411 clusters 87 MPPs 2 constellations
Επεξεργαστές και επιταχυντές Οι ΥΥΕ χρησιμοποιούν κατά κύριο λόγο εμπορικούς επεξεργαστές Τα τελευταία χρόνια έχει αυξηθεί ραγδαία η χρήση επιταχυντών (κυρίως GPUs) Σημαντικό εύρος από οικογένειες επεξεργαστών: AMD Opteron NEC 3200 IBM Power 6/7 IBM PowerPC 970MP IBM PowerXcell 8i Intel Itanium Intel Xeon
Processor families share June 2011 Intel EM64T x86 IS CISC out-of-order AMD x86_64 (Opteron) x86 IS CISC out-of-order Intel IA-64 (Itanium) VLIW architecture IBM Power PowerPC / PowerXcell RISC architecture in-order Power6/7 RISC architecture out-of-order SUN Sparc RISC architecture NEC 3200 Vector architecture
Επιταχυντές Κάρτες γραφικών Καλύτερη επίδοση ανά μονάδα ισχύος και κόστους από τους επεξεργαστές Μαζικά πολυπύρηνες Διαχείριση ιεραρχίας μνήμης από το λογισμικό Χαμηλή επίδοση σε εφαρμογές με πολύπλοκες ροές ελέγχου Απαιτούν εξειδικευμένα προγραμματιστικά μοντέλα και εργαλεία
Δίκτυα διασύνδεσης Ειδικά κατασκευασμένα δίκτυα (custom made) Δίκτυο του BlueGene 5 διαφορετικά δίκτυα: point to point και multicast collective communication global interrupts για barriers I/O control Δίκτυο του Cray XT 3D torus 9,6Gb/s Δίκτυο του NEC SX 9 1 stage crossbar εντός του frame (512Gb/s/θύρα) full crossbar μεταξύ frames (128Gb/s/θύρα) Δίκτυο του SGI Altix 4000 NUMAlink4 στο εσωτερικό των blades και μεταξύ των blades 6,4Gb/s Δίκτυο Tofu (Rank #1) Six dimensional torus network interconnect
Δίκτυα διασύνδεσης Εμπορικά δίκτυα Ethernet GbE και 10GbE Μεγάλο εύρος ζώνης Συμβατό με υποδομές Ethernet (οικονομικό) Μεγάλο latency (40 μs για το GbE και 10 μs για το 10GbE) Infiniband Εως 40Gb/s εύρος ζώνης Χαμηλό latency: 4us Infinipath Παραλλαγή του Infiniband Σύνδεση με το HyperTransport Πολύ χαμηλό latency: 1,3us Myrinet Εύρος ζώνης 10Gb/s Χαμηλό latency: 2us
Interconnect share June 2011
Top500: June 2010 list (companies)
Top500: June 2010 list (countries)
Top500 highlights Ranked 1 st : K computer MPP 548352 cores SPARC64 VIIIfx 8Core 2GHz Tofu Proprietary interconnection network 8.16PFlops Japan 220 / 500 cluster με Gigabit Ethernet και Intel EM64T Μόνο 1 από αυτά στο Top100 (#45) 206 / 500 cluster με Infiniband 2 από αυτά στο Top10 ~5000 πυρήνες απαιτούνται για την είσοδο στο top500
Multi core processors Intel Xeon Westmere, 4, 6, 10 cores, HT Sandy Bridge, 4, 6 cores Intel Teraflops Research Chip (Polaris) 80 core processor AMD Opteron Magny Cours, 4, 6 cores Interlagos, 16 cores IBM Power 7 4, 6, 8 core Tilera Tile TILE64, 64 core TILE Gx, 100 core Sun UltraSPARC T3 sixteen core, 128 concurrent threads
Παράλληλες πλατφόρμες εκτέλεσης Η «ιδανική» παράλληληπλατφόρμαpramπλατφόρμα Ταξινόμηση του Flynn Ρεαλιστικές πλατφόρμες: Κοινής μνήμης Κατανεμημένης μνήμης Υβριδικές Σύνοψη του μαθήματος Αναλυτική μοντελοποίηση παράλληλων προγραμμάτων Αξιολόγηση η επίδοσης Μοντελοποίηση και πρόβλεψη της επίδοσης
Σχεδιασμός παράλληλων προγραμμάτων Κατανομή δεδομένων και υπολογισμών task centric vs data centric tasks, processes and processors Σύνοψη του μαθήματος Αλληλεπίδραση μεταξύ tasks: συγχρονισμός και επικοινωνία Υλοποίηση παράλληλων προγραμμάτων Προγραμματιστικά μοντέλα Κοινού χώρου διευθύνσεων Ανταλλαγής μηνυμάτων Προγραμματιστικές δομές (πώς μπορώ να «μιλήσω» παράλληλα;) Ζητήματα επίδοσης και αλληλεπίδραση με την αρχιτεκτονική (γιατί δεν παίρνω την επίδοση που θέλω;)
Σύνοψη του μαθήματος Συγχρονισμός: Από το hardware στις δομές συγχρονισμού υψηλού επιπέδου Εφαρμογές: Seven dwarves Dense Linear Algebra Sparse Linear Algebra Spectral Methods N Body Methods Structured Grids Unstructured Grids MapReduce (Monte Carlo) New applications Combinational Logic Find Nearest Neighbors Graph htraversal Dynamic Programming Back track/branch & Bound Graphical Model Inference Finite State Machine