High Performance Computing SS 2004 PD Dr. A. Strey Abteilung Neuroinformatik, Universität Ulm Email: strey@informatik.uni-ulm.de Inhalt Einführung hohe Leistung durch Parallelität! kurze Historie des High Performance Computing (C) Top 500 Architekturen für C Exkurs: SIMD-Parallelrechner und Vektorrechner Hochleistungsprozessoren (z.b. UltraSparc, Pentium 4, Itanium, Opteron) Parallelrechner mit gemeinsamem Speicher (SMP = Symmetric Multiprocessor ) Parallelrechner mit verteiltem Speicher (DMC = Distributed Memory Computer ) Parallelrechner mit virtuellem gemeinsamem Speicher (ccnuma = cache-coherent Non-Uniform Memory Access ) Cluster aus PCs/Workstations/SMPs 2
Inhalt (Forts.) Programmierumgebungen für C High Performance Fortran PVM ( Parallel Virtual Machine ) MPI ( Message Passing Interface ) Threads OpenMP automatische Vektorisierung / Parallelisierung Leistungsbewertung von C-Systemen Typische C Anwendungen, z.b.: Lösen großer Gleichungssysteme Simulation neuronaler Netze Sequenzanalyse in Bioinformatik Ausblick: Trends und Perspektiven 3 Lernziele Verständnis der wichtigsten Architekturkonzepte moderner C-Systeme Grundlagen der prozessparallelen Programmierung von C- Systemen Entwicklung eigener prozessparalleler Programme mit MPI Grundlagen der threadparallelen Programmierung von C- Systemen Entwicklung eigener threadparalleler Programme mit OpenMP Leistungsbewertung von C-Systemen 4
Aufbau Vorlesung: Di., 16-18, Raum O27/121 Übung: Fr., 8.30-10, Raum O27/121 voraussichtliche Übungstermine: 1) Rechnerarchitekturen für C 14.05.04 2) MPI, Teil 1 04.06.04 3) MPI, Teil 2 11.06.04 4) OpenMP, Teil 1 25.06.04 5) OpenMP, Teil 2 02.07.04 6) Leistungsbewertung 16.07.04 5 Literatur V. Kumar, A. Grama, A. Gupta, Introduction to Parallel Computing, Addison-Wesley, 2003 D.E. Culler, J.P. Singh, Parallel Computer Architecture: A Hardware/Software Approach, Morgan Kaufmann, 1999 K. Dowd, Ch. Severance, High Performance Computing, O Reilly, 1998 T. Rauber, G. Rünger, Parallele und Verteilte Programmierung, Springer, 2000 I. Foster, Designing and Building Parallel Programs, Addison- Wesley, 1995 (Online-Version unter www-unix.mcs.anl.gov/dbpp) G.C. Fox, R.D. Williams, Parallel Computing Works, Morgan Kaufmann, 1994 (Online-Version unter www.npac.syr.edu/pcw) 6
Warum C? zur Reduktion der Rechenzeit bei der Lösung eines Problems zur Berechnung größerer Probleme bei gleicher Rechenzeit (Problemgröße wächst permanent, weil Wunsch nach Realitätsnähe bei Modellierung ständig zunimmt) zur Ermöglichung von Simulationen in Echtzeit typische heutige C Anwendungen: Wettervorhersage, Simulation von Autos und Flugzeugen, Data Mining, Simulation neuronaler Netze, Analyse von DNA- oder Proteinsequenzen zur Lösung von zukünftigen noch bedeutend komplexeren Aufgaben (Grand Challenge Problems) mit ggf. neuen Algorithmen : Globale Klima-Simulation, Erdbebenvorhersage, Simulation der Ozeanströmungen, Evolution von Galaxien, Analyse des menschlichen Genoms 7 Parallelität hohe Leistung überwiegend durch hohe Taktraten und durch Ausnutzung von Parallelität in der Rechnerarchitektur Verteilung von Arbeit und Daten auf viele gleichzeitig arbeitende Rechenknoten Arten der Organisation von Parallelität (Flynn s Taxonomie) SISD (Single Instruction, Single Data, keine Parallelität!) SIMD (Single Instruction, Multiple Data) MIMD (Multiple Instruction, Multiple Data) SPMD (Same Program, Multiple Data) Arten der Organisation des Speichers Gemeinsamer Speicher (Shared Memory) Verteilter Speicher (Distributeted Memory) 8
Parallelität (Forts.) Vor-/Nachteile paralleler Verarbeitung: + kürzere Ausführungszeit aufwendige Programmierung ( hohe Kosten für Entwicklung und Pflege) effiziente Parallelisierung oft nicht trivial Schlüsselprobleme: Partitionierung eines Problems und ggf. Lastverteilung (Ziele: hohe Lokalität, maximale Auslastung, minimale Kommunikation) Skalierbarkeit (d.h. Erhöhung der Leistung bei Erhöhung der Prozessoranzahl) Portabilität der Anwendungen (d.h. rechnerunabhängige parallele Programmierung) Koordination und Synchronisation bei der parallelen Verarbeitung Kopplung sehr vieler Prozessoren 9 SIMD-Parallelrechner Kontrolleinheit broadcastet Instruktionen an viele einfache Prozessorelemente (PEs) alle PEs führen taktsynchron die gleiche Instruktion auf unterschiedlichen Daten aus datenparallele Programmierung einzige Ausnahme: Maskierung durch paralleles if-konstrukt gut für Operationen auf Vektoren und Matrizen Beispiele: Connection Machine, ILLIAC IV, ICL DAP, MasPar MP1 und MP2 Prinzip heute auch zu finden in SIMD-Einheiten moderner Ps 10
MIMD-Parallelrechner mehrere komplexe und unabhängig arbeitende Prozessoren prozeßparallele Programmierung gemeinsamer Speicher (mit globalem Adreßraum) oder verteilter Speicher größere Flexibilität als bei SIMD preiswerter dank Standardkomponenten weites Spektrum an Architekturen, z.b.: Symmetrische Multiprozessoren (SMP) Parallelrechner mit verteiltem Speicher (DMC = Distributed Memory Computer ) Cluster aus PCs/Workstations Beispiele: Intel ipsc und Paragon, Cray T3D und T3E, SP2, Sun C 11 Historie C : Meilensteine 1972: Slotnick entwickelt Illiac IV (erster SIMD-Computer mit 64 64-Bit PEs in Gitter-Topologie) 1976: Cray Research installiert ersten Vektorrechner Cray-1 mit einer Leistung von 100 MFlop/s 1982: Fujitsu installiertvp-200 Vektorrechner mit 500 MFlop/s 1985: Thinking Machines stellt Connection Machine CM1 vor (SIMD-Computer mit 64k 1-Bit PEs) 1986: erster SMP: Sequent Balance 8000, 8 CPUs 1988: Intel stellt ipsc/2 vor (MIMD-Rechner mit bis zu 128 in einem Hyperkubus angeordneten 386-Prozessoren) 1992: MasPar liefert MP2 aus (SIMD-Computer mit 16k 32-Bit Prozessorelementen) 12
Historie C : Meilensteine (Forts.) 1993: Cray baut MIMD-Rechner Cray T3D (bis zu 2048 DEC Alpha-Prozessoren verbunden in 3DTorus-Topologie) 1994: SP2: Kopplung vieler RISCSystem/6000 Workstations über ein schnelles, skalierbares Netzwerk 1995: DEC Alpha 21164 Prozessor mit 4-facher Superskalarität 1996: SGI Origin 2000 (erster Parallelrechner mit virtuellem gemeinsamem Speicher) 1997: System Deep Blue schlägt Weltschachmeister Kasparov 1997: ASCI Red mit 4536 Pentium Pro CPUs erreicht eine Leistung von mehr als 1 TFlop/s 2003: ASCI Q aus 4096 Alpha CPUs erreicht mehr als 10 TFlop/s (Details: www.llnl.gov/asci) 13 Leistung von C Systemen 14
Leistung von Prozessoren 15 Technologie für Prozessoren Taktrate bei Mikroprozessoren erhöhte sich von 1 MHz (1980) auf 1 GHz (2000) Mooresches Gesetz: Verdopplung von Geschwindigkeit des Prozessors und Kapazität der Speicherbausteine alle 1,5 Jahre! gibt es physikalische Grenzen? Lichtgeschwindigkeit: 30 cm/ns Geschwindigkeit der Signalausbreitung in Kupfer: 9 cm/ns (1 GHz entspricht einer Taktbreite von 1ns) Energieverbrauch (und somit Wärmeentwicklung) wachsen linear mit Taktfrequenz (Reduktion der Betriebsspannung, kann nicht beliebig klein werden!) weitere Leistungssteigerungen langfristig hauptsächlich nur durch Ausnutzung von Parallelität! 16
TOP 500 seit 1993 wird halbjährlich eine Liste der weltweit 500 schnellsten C-Systeme erstellt Bewertungsmaßstab ist der LINPACK Benchmark (Lösung eines großen linearen Gleichungssystems der Form A x = b) R max gibt die Leistung eines Systems in GigaFlop/s bei einer individuell gewählten optimalen Problemgröße N max an R peak gibt die theoretisch erreichbare Spitzenleistung an Details unter www.top500.org 17 Top 500 Auszug (Top 20, international, Teil 1) Rank Site Country/Year Computer / Processors Manufacturer R max R peak 1 Earth Simulator Center Japan/2002 Earth-Simulator / 5120 NEC 35860 40960 2 Los Alamos National Laboratory United States/2002 ASCI Q - AlphaServer SC45, 1.25 GHz / 8192 13880 20480 3 Virginia Tech 1100 Dual 2.0 GHz Apple G5/Infiniband 4X/Cisco GigE / 2200 Self-made 10280 17600 4 NCSA PowerEdge 1750, P4 Xeon 3.06 GHz, Myrinet / 2500 Dell 9819 15300 5 Pacific Northwest National Laboratory Integrity rx2600 Itanium2 1.5 GHz, Quadrics / 1936 8633 11616 6 Los Alamos National Laboratory Opteron 2 GHz, Myrinet / 2816 Linux Networx 8051 11264 7 Lawrence Livermore National Lab United States/2002 MCR Linux Cluster Xeon 2.4 GHz - Quadrics / 2304 Linux Networx/Quadrics 7634 11060 8 Lawrence Livermore National Lab United States/2000 ASCI White, SP Power3 375 MHz / 8192 7304 12288 9 NERSC/LBNL United States/2002 SP Power3 375 MHz 16 way / 6656 7304 9984 10 Lawrence Livermore National Lab xseries Cluster Xeon 2.4 GHz - Quadrics / 1920 /Quadrics 6586 9216 18
Top 500 Auszug (Top 20, international, Teil 2) 11 National Aerospace Laboratory of Japan Japan/2002 PRIMEPOWER C2500 (1.3 GHz) / 2304 Fujitsu 5406 11980 12 Pittsburgh Supercomputing Center United States/2001 AlphaServer SC45, 1 GHz / 3016 4463 6032 13 NCAR (National Center for Atmospheric Research) pseries 690 Turbo 1.3 GHz / 1600 4184 8320 14 Chinese Academy of Science China/2003 DeepComp 6800, Itanium2 1.3 GHz, QsNet / 1024 Legend 4183 5324.8 15 Commissariat a l'energie Atomique (CEA) France/2001 AlphaServer SC45, 1 GHz / 2560 3980 5120 16 Cx United Kingdom/2002 pseries 690 Turbo 1.3GHz / 1280 3406 6656 17 Forecast Systems Laboratory United States/2002 Aspen Systems, Dual Xeon 2.2 GHz, Myrinet2000 / 1536 Ti 3337 6758 18 Naval Oceanographic Office United States/2002 pseries 690 Turbo 1.3GHz / 1184 3160 6156.8 19 Government Cray X1 / 252 Cray Inc. 2932.9 3225.6 20 Oak Ridge National Laboratory Cray X1 / 252 Cray Inc. 2932.9 3225.6 19 Top 500 Auszug (Top 20, Deutschland, Teil 1) Rank Site Country/Year Computer / Processors Manufacturer R max R peak 31 Max-Planck-Gesellschaft MPI/IPP pseries 690 Turbo 1.3 GHz / 822 2198.44 4274.4 37 Deutscher Wetterdienst SP Power3 375 MHz 16 way / 1920 2106 2880 64 Leibniz Rechenzentrum Germany/2002 SR8000-F1/168 / 168 Hitachi 1653 2016 69 DKRZ - Deutsches Klimarechenzentrum SX-6/192M24 / 192 NEC 1484 1536 119 HLRN at Universitaet Hannover / RRZN Germany/2002 pseries 690 Turbo 1.3GHz / 384 1038 1996.8 120 HLRN at ZIB/Konrad Zuse-Zentrum fuer Informationstechnik Germany/2002 pseries 690 Turbo 1.3GHz / 384 1038 1996.8 151 Universitaet Aachen/RWTH Fire 15k/6800 Cluster / 672 Sun 891.4 1209.6 165 Universitaet Heidelberg - IWR Germany/2002 HELICS AMD 1.4 GHz - Myrinet / 512 Megware 825 1433.6 182 EDS/ Adam Opel AG pseries 690 Turbo 1.3GHz / 264 755 1372.8 221 Fraunhofer Institut, Ernst-Mach Institute xseries Cluster Xeon 2.0 GHz - Myrinet / 256 654.7 1024 20
Top 500 Auszug (Top 20, Deutschland, Teil 2) 226 BMW AG Integrity Superdome, 1.5 GHz, lex / 128 642.9 768 261 Consumer Industry xseries Xeon 2.8 GHz, GigEthernet / 234 591.073 1310.4 262 W. Karmann GmbH xseries Xeon 2.8 GHz, GigEthernet / 234 591.073 1310.4 265 Postbank Germany/2002 pseries 690 Turbo 1.3 GHz, GigEth / 256 590.2 1331.2 269 Hewlett Packard Integrity rx2600 Itanium2 1.5 GHz, Myrinet / 128 579 768 273 PIK pseries 655 1.1GHz / 240 574.9 1056 284 Deutsche Telekom AG Germany/2000 SP Power3 375 MHz / 528 553 792 299 Government AlphaServer SC45, 1.25 GHz / 256 538.4 640 301 Pharmaceutical Company Germany/2001 SP Power3 375 MHz / 510 536 765 307 OverWrite SuperDome 875 MHz/HyperPlex / 256 530.5 896 21 TOP 500, Trend bei C-Architekturen 22
TOP 500, Trend bei Prozessorherstellern 23 TOP 500, Trend bei Chiptechnologie 24
TOP 500, Trend bei C-Nutzung 25