Chameleon - Eine Taskbasierte Programmierumgebung zur Entwicklung reaktiver HPC Anwendungen

Ähnliche Dokumente
Gemeinsames TUM-LMU Seminar

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

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

CLAIX Vorstellung und Technik Christian Terboven

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

Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien

HLRN III - HPC Ressource für Norddeutschland

Towards Modular Supercomputing with Slurm

Effektive Nutzung der Simulationsumgebung Anregungen für die Praxis

Evaluation. Einleitung. Implementierung Integration. Zusammenfassung Ausblick

HPC für den Mittelstand?

Die deutsche Windows HPC Benutzergruppe

Mehrprozessorarchitekturen

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

Architekturen von Multi- und Manycore-Prozessoren

Professionelle Entwicklungstools auf PC s und HPC Clustern

GPU-Programmierung: OpenCL

High Performance Computing

GASPI. HPCN Braunschweig

Introduction Workshop 11th 12th November 2013

CHiC Chemnitzer Hochleistungs-Linux Cluster. Stand HPC Cluster CHiC. Frank Mietke, Torsten Mehlan, Torsten Höfler und Wolfgang Rehm

Kapitel 6: Dynamic Shortest Path

Multi-Tool Testlandschaft mit DDS

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware

Big Data. Professional IT Master. Prof. Dr. Ingo Claßen. Überblick. Verarbeitungsmodell. Verarbeitungsablauf. Verteilte Daten. Ressourcenmanagement

High Performance Computing

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

Energy Efficient High Performance Computing

> Implementierung paralleler Programmiermuster auf

Erste Erfahrungen mit Installation und Betrieb

!! Waldemar Reger Köln,

Supermicro VDI-Lösungen mit NVIDIA GRID

I Grundlagen der parallelen Programmierung 1

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

Intel Xeon Phi. Praktikum Parallele Rechnerarchitekturen May 13,

Herausforderungen und zukünftige Entwicklungen im Hochleistungsrechnen. Matthias S. Müller

GPGPUs am Jülich Supercomputing Centre

Optimierungsstrategien für selbstorganisierende Speicherstrukturen

Einführung. ECU-übergreifende Funktionen nehmen immer mehr zu! z.b. bei Fahrerassistenz-Systemen

WAVE: Eine portable HPC-toolbox zur Simula:on und Inversion von Wellenfeldern. Ins:tut für theore:sche Informa:k Geophysikalisches Ins:tut

ODA Erfahrungen und Neuigkeiten

Wissenschaftliches Rechnen an der Christian- Albrechts-Universität zu Kiel

Memory Models Frederik Zipp

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

GridMate The Grid Matlab Extension

Instrumentation von Android Anwendungen mit ExplorViz

TensorFlow Open-Source Bibliothek für maschinelles Lernen. Matthias Täschner Seminar Deep Learning WS1718 Abteilung Datenbanken Universität Leipzig

Exascale Computing. = Exascale braucht Manycore-Hardware...und was für Software??? 46/58

Parallele Programmiermodelle

Einfu hrende Betrachtung des USB und Mo glichkeiten der Integration in das Rainbow-Betriebssystem. Georg Gottleuber 23. Juni 2010 Verteilte Systeme

Cluster Computing. Heiko Bauke Stephan Mertens. Praktische Einführung in das Hochleistungsrechnen auf Linux-Clustern. Mit 85 Abbildungen

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

AP II: Weiterentwicklung von LB-Methoden für Praktische Anwendungen auf Hochskalierenden Systemen

Opteron und I/O. Toni Schmidbauer. 11. Mai Zusammenfassung. Eine kurze Beschreibung der AMD Opteron Architektur.

Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation

Programmierung von Many-Cores. Seminar: Software Engineering für Exascale Computing

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn

Konzepte der parallelen Programmierung

TecNews: Sandy Bridge

Vorstellung der SUN Rock-Architektur

DB2 mit BLU Accelerator unter SAP. Sascha M. Köhler Software Architekt

Verteilte Web-Anwendungen mit Ruby. Ruben Schempp Anwendungen

Einführungs-Workshop Februar Übersicht

Hochleistungsrechnen mit Windows Interaktive Benutzung und das Batchsystem Christian Terboven Rechen- und Kommunikationszentrum RWTH Aachen

Erfahrungen mit LSF an der RWTH. Eine kurze Geschichte der LoadSharingFacility

Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP)

CPU-Update. Wie Äpfel zu Melonen werden. best OpenSystems Day April Unterföhring

IT-Effizienzworkshop bei New Vision GmbH Entry und Midrange Disksysteme

Software Distributed Shared Memory. Vortrag im Rahmen des Seminars Ausgewählte Themen in Hardwareentwurf und Optik Sarah Neuwirth, 05.

2 Rechnerarchitekturen

Performance Tuning & Scale-Out mit MySQL

Was ist ein Profiler?

Oracle Data Warehouse Mit Big Data neue Horizonte für das Data Warehouse ermöglichen

Einige Grundlagen zu OpenMP

Web Services Die Definition von Web Services in der Theorie und FNT-Command als Web Service in der Praxis

Fehlertoleranz in eingebetteten Systemen

Ibis. Jan Frederik Naujoks

Oracle Grid Infrastructure 11gR2 im praktischen Einsatz

SmartMX, NFC & Arygon. Ralf Kretschmann, Achim Kretschmann, Bernd Fleischmann

Über die Cell/B.E.-Architektur: Optionen zur Generierung von Programm-Traces

Clustering mit Shared Storage. Ing. Peter-Paul Witta

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

Performance Analysis of Computer Systems

Übersicht aktueller heterogener FPGA-SOCs

Multi- und Many-Core

XIV Storage reinvented

software visualization NICK MÜLLER, a

Cloud Computing in SAP Umgebungen

Outline. Cell Broadband Engine. Application Areas. The Cell

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

Universität Karlsruhe (TH)

Omnichannel Automation mit elastischer Skalierung

Skalierbare Webanwendungen

Paradigmenwechsel: Von der Rechner-zentrierten zur Informationszentrierten DV Skalierbarkeit: Erweiterung von Ressourcen ohne Erhöhung der

IBM Storage Virtualisierungslösungen. sungen

Lock-free Datenstrukturen

Oracle EngineeredSystems

OpenMP. Viktor Styrbul

Software Design basierend auf dem Plug-In Konzept

Transkript:

Dr. Karl Fürlinger Lehrstuhl für Kommunikationssysteme und Systemprogrammierung Chameleon - Eine Taskbasierte Programmierumgebung zur Entwicklung reaktiver HPC Anwendungen

Chameleon Überblick Chameleon Projekt im 5. BMBF HPC call Laufzeit: 1.4.2017 31.3.2020 Projektpartner LMU München, LFE für Kommunikationssysteme und Systemprog. RWTH Aaachen, Lehrstuhl für Hochleistungsrechnen TU München, Professur für Hardware-nahe Algorithmik www.chameleon-hpc.org Ziele: Entwicklung einer taskbasierten Programmierumgebung, basierend auf und mit Erweiterungen von MPI und OpenMP Unterstützung für Reaktivität, dh. Anwendung wird in die Lage versetzt auf dynamische HW Veränderungen zu reagieren GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 2

Motivation - Komplexität Cori 1 (NERSC) Sierra, Summit 2 (LLNL, ORNL) Aurora 3 (ANL) Inst. Year Peak Perf. 2016 >30 PF 2017-2018 Complex node architecture ~150 PF 2018-2019 180-450 PF Peak Power Homogeneous manycore Node Perf. <3.7 MW >3 TF 10 MW >40 TF 13 MW Heterogeneous manycore (accelerator based) >3 TF No. of Nodes 9,300 3,400 >50,000 Node Architecture Heterogeneous memory (regular Interconnect DRAM+stacked RAM) Memory Intel Xeon Phi (Knights Landing) Cray Aries DDR4 + On-package high BW memory IBM Power 9 + Nvidia Volta Dual Rail EDR Infiniband DRAM + stacked DRAM Intel Xeon Phi (Knights Hill) Persistent memory (NVRAM) 2 nd gen Intel Omni Path 7 PB DRAM+ Persistent Memory 1: https://www.nersc.gov/users/computational-systems/cori/ 2: http://www.olcf.ornl.gov/summit/ 3: http://aurora.alcf.anl.gov/ GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 3

Motivation Dynamische Variabilität Dynamische Variabilität steigt ZB. Intel Turbo Modus Komplexe Speichersysteme HW Fehlererkennung und Behandlung Bis zu 16% Differenz in der Ausführungszeit von num. Kerneln GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 4

Bulk Synchronous vs Taskbasiert (1) Bulk Synchronous Execution (now) Bulk Synchronous Execution (later) Image Source: John Shalf Image Source: Jack Dongarra GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 5

Bulk Synchronous vs Taskbasiert (2) Taskbasierte Programmiermodelle sind besser für dynamische Variabilität geeignet Weniger globale Synchronisationspunkte Stattdessen: Punkt-zu-Punkt Synchronisation und Eingabe- Ausgabeabhängigkeiten Existierende Taskbasierte Ansätze: Programmiermodelle wie Charm++, HPX, Legion, Das sind neue Programmiersprachen / Programmiersysteme Aber die meisten HPC Anwendungen verwenden MPI und OpenMP GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 6

Chameleon - Ansatz Application Application MPI+OpenMP Old HW Model Δt Analysis Tasking MPI+OpenMP New HW Model Δt Monitoring 3 Komponenten von Chameleon Tasking Erweiterung basierend auf OpenMP+MPI Monitoring-Komponente für Leistungsintrospektion Analyse-Komponente für Datensammlung und Aufbereitung GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 7

Chameleon Tasking Erweiterung des Task-Konzepts in OpenMP Tasking seit v3.0 in OpenMP unterstützt (knotenlokal) Neuere OpenMP Features: Datenabhängigkeiten, Task Abbruch (cancellation) Prototypische Chameleon Erweiterungen: Knotenlokal: Datenaffinität und dynamische Task Prioritäten Knotenübergreifend: Replikation von Tasks und selektive Ausführung GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 8

Chameleon Monitoring / Introspection Basierend auf IPM: IPM: Integrated Performance Monitor Leichtgewichtiges Werkzeug zur Überwachung von MPI Anwendungen Entwickelt in Zusammenarbeit zw. LBNL und LMU München Für Chameleon Erweiterung um OpenMP Monitoring (via OpenMP Tools Interface OMPT) Erweiterung vom Postmortem-Werkzeug zum Online-Werkzeug Definition einer Introspektions Schnittstelle zw. Anwendung und Monitor GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 9

Chameleon Testanwendungen und -szenarien Zwei Anwendungen: SeisSol und sam(oa)² SeisSol: simuliert komplexe Erdbebenszenarien und Ausbreitung von seismischen Wellen Eigene Implementierung einer Taskqueue mit Vorrangrelationen Anwendungsfall in Chameleon: knotenlokales Tasking Dynamische Task Prioritäten Task Affinity sam(oa)² Adaptive Mesh Refinement auf Dreiecksgittern Sierpinksi Raumfüllende Kurve und 1D Lastbalancierung Anwendungsfall in Chameleon: Knotenübergreifendes Tasking GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 10

Pilotstudie Anwendung sam(oa)² sam(oa)²: Finite-Volumen und Finite-Elemente Simulationen auf adaptiven Dreiecksgittern (AMR) Entwickelt an der TUM: M. Bader, O. Meister, P. Samfass Lösung von Hyperbolischen Partiellen Differentialgleichungen Anwendungsfall: Tsunami Simulation Verwendet Sierpinksi Raumfüllende Kurven für Lastverteilung und balancierung Source: M. Bader / P. Samfass GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 11

sam(oa)² Lastbalancierung basierend auf Abschnitten der Sierpinksi Kurve Sog. sections. 1D Lastbalancierung Source: M. Bader / P. Samfass Chains-on- Chains Partitioning Source: M. Bader / P. Samfass GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 12

Pilotstudie: Workstealing in Sam(oa)² Workstealing Implementierung in Sam(oa)² Ein dedizierter Thread zur Ermittlung der Leistungseigenschaften und für Sehlen von entfernten Sections Atomare Zuweisung von Sections via MPI-3 RMA Szenarien 1: Nur ein langsamer Knoten Knoten 2.6 GHz Zeit Knoten 1.2 GHz 2: Wechselnde Verlangsamung (Round-Robin) 3: Workstealing an Stelle der existierenden CCP Lastbalancierung (mit starkem Lastungleichgewicht in der Anwendung) Knoten GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 13 Zeit Ze

Szenario 1: Ein langsamer Knoten Knoten Zeit 2.6 GHz 1.2 GHz Zeit-basiertes CCP Lastbalancierung funktioniert gut Für diesen Anwendungsfall zu erwarten Workstealing nicht ganz so effektiv Overheads Beschränkt auf einen Teil der Berechnung (Zeitschritt) Source: M. Bader / P. Samfass GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 14

Szenario 2: Dynamische Verlangsamung Knoten t=0.01s Zeit 2.6 GHz 1.2 GHz Zeit-basiertes CCP funktioniert deutlich schlechter Vorhersage falsch Workstealing liefert hier die besten Ergebnisse Source: M. Bader / P. Samfass GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 15

Szenario 3: Workstealing als Alternative zu CCP Knoten Zeit 2.6 GHz 1.2 GHz Workstealing eignet sich als Alternative zum anwendungsgetriebenen Loadbalancing Source: M. Bader / P. Samfass GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 16

Zusammenfassung Chameleon Taskbasierte Programmierung für OpenMP+MPI Ziel: Optimierung der Ausführung durch Laufzeitmessung ( Introspektion ) Knotenlokal: Dynamische Priorisierung, Affinität Knotenübergreifend: Replikation und selektive Ausführung (keine autom. Migration) Status Pilotstudie zu Workstealing in sam(oa)² Introspektion API Draft, demnächst verfügbar auf der Chameleon Webpage WIP: Task Replikation und selektive Ausführung WIP: Monitoring und Leistungs Introspektion www.chameleon-hpc.org GA Statustagung, Stuttgart, 4-5. Dez. 2017 Chameleon 17