Professionelle Entwicklungstools auf PC s und HPC Clustern

Ähnliche Dokumente
Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler

OpenMP - Geschichte. 1997: OpenMP Version 1.0 für Fortran

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff

Intel Cluster Studio. Michael Burger FG Scientific Computing TU Darmstadt

Nebenläufige Programme mit Python

Was ist ein Profiler?

Multi- und Many-Core

Praktikum: Paralleles Programmieren für Geowissenschaftler

Automatische Parallelisierung

Höchstleistungsrechnen in der Cloud

Einige Grundlagen zu OpenMP

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff

Schnelle modulare Synthese auf Mehrkern-Architekturen. GPN7 So, Jürgen Reuter

2 Rechnerarchitekturen

Evaluation. Einleitung. Implementierung Integration. Zusammenfassung Ausblick

Schneller als Hadoop?

Mehrprozessorarchitekturen

Memory Models Frederik Zipp

OpenMP. Viktor Styrbul

Computergrundlagen Moderne Rechnerarchitekturen

Praktikum: Paralleles Programmieren für Geowissenschaftler

Die deutsche Windows HPC Benutzergruppe

Inhaltsverzeichnis. Visualisierung von Ausführungstraces. 1. Motivation. 2. Anwendungsfelder. 3. Visualisierungstools. 4.

Hochleistungsrechnen mit Windows Verifikations- und Analyseprogramme Christian Terboven Rechen- und Kommunikationszentrum RWTH Aachen

Konzepte der parallelen Programmierung

Vorstellung der SUN Rock-Architektur

Erste Erfahrungen mit Installation und Betrieb

Profiling in Python. Seminar: Effiziente Programmierung. Jan Pohlmann. November Jan Pohlmann Profiling in Python November / 32

Beschreiben Sie die Eigenschaften der verschiedenen Rechnertypen an Hand:

Performance Engineering: Forschung und Dienstleistung für HPC-Kunden. Dirk Schmidl

Praktikum: Paralleles Programmieren für Geowissenschaftler

Beispielvortrag: HPCG auf Intel Haswell-EP

Nutzung paralleler Prozesse bei der Umweltsimulation

Grundlagen in LabWindows TM /CVI

Parallele Programmierung mit OpenMP

Vorlesung Betriebssysteme II

PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007

Programmieren in Haskell Debugging

Computergrundlagen Moderne Rechnerarchitekturen

Master-Thread führt Programm aus, bis durch die Direktive

Rechnerarchitektur SS 2013

Verkürzung von Entwurfszeiten

Leistungsanalyse von Rechnersystemen

Vorlesung Hochleistungsrechnen SS 2010 (c) Thomas Ludwig 447

Simulation der instationären Strömung in einem Diffusionsofen mit Wärmestrahlung

Seminarvortrag: Direktivenbasierte Programmierung von Beschleunigern mit OpenMP 4.5 und OpenACC 2.5 im Vergleich

magnitude Erste Erfahrungen mit dem neuen HPC-System der UDE

Centre of Excellence for High Performance Computing Erlangen Kompetenzgruppe für Supercomputer und Technisch-Wissenschaftliche Simulation

Das HLRN-System. Peter Endebrock, RRZN Hannover

Parallel Regions und Work-Sharing Konstrukte

Microsoft Azure Deutschland ist jetzt verfügbar -

Oracle Bare Metal Cloud Service

Tuning des Weblogic /Oracle Fusion Middleware 11g. Jan-Peter Timmermann Principal Consultant PITSS

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

news 12 / 2010 Aktionsrabatt

PostgreSQL auf vielen CPUs. Hans-Jürgen Schönig Hans-Jürgen Schönig

Hochleistungsrechnen Hybride Parallele Programmierung. Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen

PARADOM. Parallele Algorithmische Differentiation in OpenModelica für energietechnische Simulationen und Optimierungen.

Michael Stumpen Grid Computing. Prof. Dr. Fuhr SS04 Kommunikation. Wide-Area Implementation of the Message Passing Interface

- info@hocomputer.de - Tel: (+49) / 0221 /

Kommunikationsmodelle

Seminar - Multicore Programmierung

HP IT-Symposium

Allgemeine Speed-Up Formel. Gesetz von Gustafson-Barsis

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading

Compute Unified Device Architecture CUDA

Wissenschaftliches Rechnen im SoSe 2015 Dr. J. Kunkel, Hans Ole Hatzel Abgabe:

Hochleistungsrechnen in Darmstadt: Der Lichtenberg- Hochleistungsrechner. Dr. Andreas Wolf. Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum

SSPO User Meeting 2016 R1/R2. SSPO Systems Solutions & Process Optimization Inh. Pishrow Shali. SSPO Inh. Pishrow Shali

Trend der letzten Jahre in der Parallelrechentechnik

Praktikum: Paralleles Programmieren für Geowissenschaftler

Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur

Praktikum: Paralleles Programmieren für Geowissenschaftler

Tutorium Softwaretechnik I

Partitionierung von rechenintensiven Aufgaben zwischen FPGA und CPUs

Games with Cellular Automata auf Parallelen Rechnerarchitekturen

Matlab. Alexandra Mehlhase & Felix Böckelmann. 26. Juni Analysetechniken in der Softwaretechnik Technische Universität Berlin SS 2008

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Praktikum: Paralleles Programmieren für Geowissenschaftler

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading

Universität Karlsruhe (TH)

h.o.-computer news 20 Jahre ho-computer Die Party geht weiter Jubiläumsrabatt auf alle Intel-Softwareprodukte bis zum 20. Dezember

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading

Multi-threaded Programming with Cilk

Ausblick auf den HLRN III - die neue HPC Ressource für Norddeutschland

Matrix Transposition mit gaspi_read_notify. Vanessa End HPCN Workshop 11. Mai 2016

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen

Programmierkurs für Chemiker in Fortran Sommersemester 2013

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler

Intel Thread Checker

ODA Erfahrungen und Neuigkeiten

PostgreSQL in großen Installationen

T-Systems SfR - HPCN Workshop

Aktuelle RTOS-Entwicklungen aus der Forschung

Cilk Sprache für Parallelprogrammierung. IPD Snelting, Lehrstuhl für Programmierparadigmen

Transkript:

Competence in High Performance Computing Professionelle Entwicklungstools auf PC s und HPC Clustern Mario Deilmann <mario.deilmann@pallas.com> DECUS Symposium, Bonn 8. April 2003 Pallas GmbH Hermülheimer Straße 10 D-50321 Brühl, Germany info@pallas.com www.pallas.com

Informationen zur Person Name: Mario Deilmann Firma: Pallas Aufgabe: Technischen Support & Produktplanung Ausbildung: Diplom-Ingenieur (Maschinenbau) Dissertation (Direkte Numerische Simulation) 26. DECUS Symposium Folie: 2

Agenda Sinn und Zweck von professionellen Entwicklungstools Kurze Übersicht über die verschiedenen Ansätze zur Optimierung Serielle Optimierung Serielle Performance Analyse Parallele Programmentwicklung und Optimierung Paralleler Debugger MPI Performance Analyse OpenMP Performance Analyse Hybride Tools 26. DECUS Symposium Folie: 3

Think of the tremendous human tragedy of time and energy a lot of scientists have lost trying to use (massive) parallel machines. Henry Burkhardt (deposed CEO of Kendall Square Research ) 26. DECUS Symposium Folie: 4

Welchen Nutzen haben prof. Entwicklungstools Entwicklungszyklus wird effizienter Systemressourcen werden optimal genutzt Programmlaufzeit wird kürzer d.h. Performance wird größer Es werden mehr Probleme in der gleichen Zeit gelöst bei geringeren Ressourcen Markteinführung wird verkürzt Welche Verbesserung sind notwendig und wie groß der tatsächliche Gewinn der Änderungen an der Applikation (speed up) Man spart Zeit und Geld! 26. DECUS Symposium Folie: 5

Wer profitiert von Performance Gewinnen Öl- und Gasindustrie: Seismische Analyse Forschung: Gewöhnliche, partielle Differentialgleichungen IT: Data Mining Pharmazeutischen Industrie: Wirkstoffdesign Meteorologie: Wettervorhersage Automobileindustrie: Crash Simulation Chemieindustrie: Simulation molekulardynamischer Prozesse Luftfahrtindustrie: Simulation im Windkanal Finanzbereich: Risikoanalysen Lange Programm-Laufzeit und große Datenmengen 26. DECUS Symposium Folie: 6

Welche Tools gibt es Optimierende Compiler beschleunigen die Ausführungszeit (Parallele) Linker verkürzen den Build-Zyklus Debugger verkürzen entscheidend die Fehlersuche Profiler können ermitteln welche Zeit in welchem Programmteil verbracht wurde Spezielle Bibliotheken ermögliche den Zugriff auf hoch optimierte plattformunabhängige Routinen (BLAS, LAPACK, FFT, JPEG, MPEG,...) Performance Analysetools liefern Informationen über Lastverteilung und Performance Engpässe 26. DECUS Symposium Folie: 7

Applikation Entwicklungsphase Auswahl von Algorithmen und Datenstrukturen Nicht optimierter serieller Code Serielle Codeoptimierung Optimierter serieller Code Optimierter paralleler Code Parallele Codeoptimierung 26. DECUS Symposium Folie: 8

Programm Zyklus / Einsatz von Werkzeugen Bibliotheken C/C++ Compiler Fortran Compiler UPC (Parallel C) Performance Analyse Thread Analyse MPI/OpenMP Analyse Source Code Compile Link Execute Output Paralleler/Inkrementeller Linker Debugger 26. DECUS Symposium Folie: 9

Serielle Code-Optimierung 26. DECUS Symposium Folie: 10

Basis Performance- nicht optimierter Code Simulation einer bewegten Wasseroberfläche 26. DECUS Symposium Folie: 11

Compiler Optimierungen Vektorisierung Code-Transformation (Schleifen) Spekulations-Analyse Daten / Programm Code in den Cache laden Explizite Parallelisierung Inter Prozedur Analyse Umstrukturierung des Programmcodes auf Basis verschiedenerer Programm-Module Profile Feedback Analyse Umstrukturierung des Programmcodes auf Basis repräsentativer Programmläufe Luafzeit [s] 14 12 10 8 6 4 2 0 Matrixmultiplikation - Sun Blade 1000 noopt O1 O2 O3 O4 Optimierung -x 26. DECUS Symposium Folie: 12

Serieller Debugger 26. DECUS Symposium Folie: 13

Profiler Routine Anzahl der Aufrufe Quellcodeinformationen Laufzeit 26. DECUS Symposium Folie: 14

Profiler Statistisches Sampling Prozessor Counter DLL s, Threads 26. DECUS Symposium Folie: 15

Profiler - Tuning Assistent Quellcode Hinweis 26. DECUS Symposium Folie: 16

Optimierungszyklus - optimierter serieller Code 9x schneller Wenig Änderungen am Quellcode 7x 9x Performance Bibliotheken 4x 1x Standard Compiler Performance Bibliotheken Standard Compiler Opt. Compiler Opt. Compiler 26. DECUS Symposium Folie: 17

Parallele Code-Optimierung 26. DECUS Symposium Folie: 18

Parallele Programmiermodelle!$omp parallel Multithreading: Parallelität auf Instruktionslevel call MPI_INIT(!$ompierr do) OpenMP: call MPI_COMM_RANK( Parallelität do j = auf 1, MPI_COMM_WORLD, p Schleifen- und myid, Tasksebene ierr ) call MPI_COMM_SIZE( do i = MPI_COMM_WORLD, 1, m numprocs, ierr ) MPI: Parallelität print *, "Process auf ", myid, c(i,j) Kommunikationsebene = " of 0.0", numprocs, " is alive" c send b to each enddo other process Hybride do Modelle: 25 i = 1,bcols enddo MPI + OpenMP / MPI + (Auto)Threading call MPI_BCAST(b(1,i), do i = mbrows, MPI_DOUBLE_PRECISION, master, & MPI_COMM_WORLD,!$omp do ierr) 25 continue do ii = 1, n arow(ii) = a(i,ii) c send a row of a enddo to each other process; tag with row number do 40 i!$omp = 1,numprocs-1 do do 30 j = 1,acols do j = 1, p buffer(j) = a(i,j) do k = 1, n 30 continue c(i,j) = c(i,j) + arow(k) * b(k,j) call MPI_SEND(buffer, enddo acols, MPI_DOUBLE_PRECISION, i, & i, MPI_COMM_WORLD, enddo ierr) numsent = enddo numsent+1!$omp end parallel Bei der Lösung von Problemen auf parallelen Maschinen bedarf es neuer Ansätze und Werkzeuge 26. DECUS Symposium Folie: 19

Gegenüberstellung: Performance - Aufwand Programm Performance OpenMP Debugger MPI MPI OpenMP Entwicklung/Testen Aufwand bei der Entwicklung 26. DECUS Symposium Folie: 20

Fall Studie - LS-DYNA (OpenMP) Speed-UP 3 2.5 2 1.5 1 0.5 0 1 2 4 CPUs 3D: 111.029 Elemente 1 CPU Zeit = 119955 Sekunden 2 CPU Zeit = 69113 Sekunden 4 CPU Zeit = 43864 Sekunden Quad Xeon LS-DYNA ist ein Finite Element Programm für Crash- Simulationen Ca. 750,000 Zeilen Fortran und C Quellcode 1.74x speed up auf 2 CPUs, 2.74x speed up auf 4 CPUs 26. DECUS Symposium Folie: 21

Fall Studie Verbrennungssimulation (MPI) CPUs 1 Mio. Elemente 2D: 1000 x 1000 Cray T3E 1CPU 100 Stunden 100CPUs 1,5 Stunden NSCORE Programm zur Direkten numerischen Simulation von Verbrennungsvorgängen 350x speed up auf 512 CPUs 26. DECUS Symposium Folie: 22

Parallele Programmentwicklung 26. DECUS Symposium Folie: 23

Paralleler Debugger 26. DECUS Symposium Folie: 24

Anforderungen an einen parallelen Debugger Eigenschaften eines seriellen command line Debuggers plus Graphische User Interface Dynamischer call tree (grafisch) Darstellung der Nachrichten-Kommunikation (grafisch) Übersichtliche Darstellung paralleler Prozesse (> 100 threads) Unterstützung verschiedener paralleler Programmierparadigmen Kontrollstrukturen zur Synchronisation paralleler Prozesse Automatische Start aller beteiligten Prozesse 26. DECUS Symposium Folie: 25

Debugger Features Debug-Aktionen Breakpoint Evaluationpoint Watchpoint Daten Management Darstellung Statistiken Visualisierung Änderungen während des Programmlaufs 26. DECUS Symposium Folie: 26

Grafische Darstellung des call tree s Dynamisch Darstellung des Programmablaufs Potentielle Konflikte können visualisiert werden Kontrolle und Abhängigkeiten des Programmablaufs 26. DECUS Symposium Folie: 27

Dedizierte Kontrolle der einzelnen Prozesse Kontrolle einzelner Threads und Ablaufkontrolle auf Threadlevel Beliebige Gruppierung von Threads und Prozessen Dynamische Gruppierung von Threads und Prozessen Definition von Ablaufkriterien für Prozessgruppen breakpoints barrier 26. DECUS Symposium Folie: 28

Visualisierung der Kommunikation Darstellung der Nachrichtenwege zu einem definierten Zeitpunkt Inter-Prozess Kommunikation Visualisierung von Kommunikations- Problemen (hängende, unerwartet Nachrichten) 26. DECUS Symposium Folie: 29

MPI Performance Analyse 26. DECUS Symposium Folie: 30

Anforderungen an ein Performance Analysetool Analyse von MPI und User Routinen des optimierten Programms Statistische Analyse von Programm und Kommunikation Darstellung der Lastverteilung Einfache und schnelle Handhabung Filtermöglichkeiten (Prozesse, Nachrichten, kollektive and MPI I/O Operationen) Geringen Einfluss auf die Applikations-Performance 26. DECUS Symposium Folie: 31

Statistik des Programmablaufs 26. DECUS Symposium Folie: 32

Detail Information Nachricht gesendet Nachricht empfangen Nachrichten- Linie Zusätzliche Details 26. DECUS Symposium Folie: 33

Fall Studie - LM LM (Lokal Modell) ist das Programm des Deutschen Wetterdienstes (DWD) für die Wettervorhersage im Skalenbereich von 1-10 km. Untersucht wurden : Einfluss von Prozessorgitter zu Knotengitter Aufteilung Überlappung von I/O und Berechnung 26. DECUS Symposium Folie: 34

Trace LM - Test Fall auf 224 Prozessoren Input Output 20 Zeitschritte 26. DECUS Symposium Folie: 35

LM - Laufzeit Phase Input Dauer beim Start von LM : 45 s Zeitschritte Dauer ca. 2.3 s Auswertung der Kommunikation Performance Datenverteilung: Prozess Knoten Aufteilung Output Dauer ca. 20 s beim Start Ca. 20 s nach jedem Zeitschritt 26. DECUS Symposium Folie: 36

LM Zeitschritt Analyse Ein Zeitschritt Statistik über alle Prozesse 26. DECUS Symposium Folie: 37

LM Knotenmapping Analyse Kommunikation zwischen den Prozessen Kommunikation zwischen den SMP Knoten 26. DECUS Symposium Folie: 38

LM Zeitschritt Analyse MPI Kommunikation beträgt ca. 16% der Laufzeit Lastverteilung ist gut (geringer Kommunikationsoverhead) Kommunikations-Matrix Typische 2 D Nachbarkommunikation Zuviel off node Kommunikation Lösungsansatz: Verbessertes Mapping durch Inner-Knoten- Kommunikation (shared memory statt interconnect) 26. DECUS Symposium Folie: 39

Verbesserung des Prozessor Mappings Ursprüngliches Knotenmapping Verbessertes Knotenmapping 26. DECUS Symposium Folie: 40

Analyse der Output Phase Alle Prozesse senden an Prozess 0 26. DECUS Symposium Folie: 41

Analyse der Output Phase Das Schreiben des Output blockiert alle Prozesse und benötigt soviel Zeit wie 8 Zeitschritte Der gesamte Output ist somit über Prozess 0 serialisiert Lösungsansatz: Verwendung eines dedizierten I/O Knotens Jeder Prozess sendet seine Output Daten an den I/O Knoten und rechnet weiter Der I/O Knoten führt die Festplattenzugriffe durch während die Berechnung weiter geht 26. DECUS Symposium Folie: 42

Analyse der Output Phase I/O Knoten Überlagerung Berechnung- I/O 26. DECUS Symposium Folie: 43

OpenMP Analyse 26. DECUS Symposium Folie: 44

Anforderungen an ein OpenMP Analysetool OpenMP Performance Probleme Probleme bei der Lastverteilung Synchronisation Probleme Darstellung folgender Faktoren Effektiver speed up Ausführungszeitaufteilung (Parallel, Seriell, Overhead) Vergleich verschiedene Programmläufe Anzahl der verwendeten Threads wird einfach über ein Umgebungsvariable getriggert! 26. DECUS Symposium Folie: 45

OpenMP Beispiel - Matrixmultiplikation Information pro Thread Statistik (Bereich/Gesamt) 26. DECUS Symposium Folie: 46

OpenMP Beispiel - Matrixmultiplikation Vergleich idealer-tatsächlicher Performance speed up Identifizierung von bottlenecks (barriers, locks, seq. time) 26. DECUS Symposium Folie: 47

Thread Analyse parallele Probleme Synchronisationsprobleme (memory leaks) 26. DECUS Symposium Folie: 48

Thread Analyse - deadlock 26. DECUS Symposium Folie: 49

Basis Performance nicht optimierter Code 26. DECUS Symposium Folie: 50

Optimierter serieller Code 9x schneller Wenig Änderungen am Quellcode 7x 9x Performance Bibliotheken 4x 1x Standard Compiler Performance Bibliotheken Standard Compiler Opt. Compiler Opt. Compiler 26. DECUS Symposium Folie: 51

Optimierter paralleler Code - OpenMP 15x schneller Mittlere Änderungen am Quellcode 13x Performance Bibliotheken Wenig Änderungen am Quellcode 7x 9x Performance Bibliotheken OpenMP Threading OpenMP Threading 4x 1x Standard Compiler Performance Bibliotheken Standard Compiler Opt. Compiler Opt. Compiler Opt. Compiler Opt. Compiler 26. DECUS Symposium Folie: 52

Optimierte parallel Performance 15x schneller 26. DECUS Symposium Folie: 53

Hybride Modelle 26. DECUS Symposium Folie: 54

MPI OpenMP Analyse expandieren 26. DECUS Symposium Folie: 55

MPI+OpenMP verschiedene Programmläufe 26. DECUS Symposium Folie: 56

Einsatzgebiet der Werkzeuge SMP PC ASCI-Q 30 Teraflop System HP SMP System 2-4 CPUs 4 GB Hauptspeicher 100 GB Festplattenspeicher 374 * 32-way GS320 System 12.000 Alpha 21264 CPUs 12 TB Hauptspeicher 600 TB Festplattenspeicher 26. DECUS Symposium Folie: 57

Folie: 1 58 Vielen Dank für Ihre Aufmerksamkeit Pallas GmbH Hermülheimer Straße 10 D 50321 Brühl, Germany info@pallas.com www.pallas.com