Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft. Fallbeispiel Wettervorhersage



Ähnliche Dokumente
Proseminar Technische Informatik A survey of virtualization technologies

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen

OpenMP am Beispiel der Matrizenmultiplikation

Sudoku-Informatik oder wie man als Informatiker Logikrätsel löst

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Professionelle Seminare im Bereich MS-Office

C++ Tutorial: Timer 1

Die PROJEN-GmbH bietet ihren Kunden einheitliche

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

1 Einleitung. 1.1 Caching von Webanwendungen Clientseites Caching

Übungen zur Softwaretechnik

Tag der Umweltmeteorologie Michael Kunz

Hochleistungsrechnen für Wissenschaft und Wirtschaft im internationalen Verbund

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

Optimierung der operativen Controllingaktivitäten

Informationsblatt Induktionsbeweis

TIMI: Technische Informatik für Medieninformatiker

Zeichen bei Zahlen entschlüsseln

Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden.

Institut für Computational Engineering ICE. N ä h e r d ra n a m S ys t e m d e r Te c h n i k d e r Z u ku n f t. w w w. n t b.

Fragebogen zur Anforderungsanalyse

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

MAP CellSs Mapprakt3

Kapiteltests zum Leitprogramm Binäre Suchbäume

Java Entwicklung für Embedded Devices Best & Worst Practices!

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

OPERATIONEN AUF EINER DATENBANK

curabill Projektpräsentation fmc Jahressymposium 2014

Echtzeitanomalieerkennung für Internetdienste (Abschlussvortrag)

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Infrastruktur fit machen für Hochverfügbarkeit, Workload Management und Skalierbarkeit

Regelungs- und Systemtechnik 1. Kapitel 1: Einführung

Noten ausrechnen mit Excel/Tabellenkalkulation. 1) Individuellen Notenschlüssel/Punkteschlüssel erstellen

Meet Magento,

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

dspace (1/3) dspace: Gegründet 1988 in Paderborn Mitarbeiter: Über 650 Mitarbeiter weltweit, davon über 70 % Ingenieure Ständiges Mitarbeiterwachstum

Research Note zum Thema: Laufzeit von Support-Leistungen für Server OS

Das Terminal. Einführung in das Postersystem

MATCHING VON PRODUKTDATEN IN DER CLOUD

Internet Explorer Version 6

PROKONTEX / Mit Profis arbeiten.

XONTRO Newsletter. Makler. Nr. 16

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Java: Vererbung. Teil 3: super()

bit Televaulting

Übungen zur Softwaretechnik

Effizient, sicher und flexibel: Desktop-Virtualisierung mit Citrix XenDesktop

Agile Software Development

Excel beschleunigen mit dem mit Windows HPC Server 2008 R2

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

mobilegoogleearth Version 1.20

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Dieser Handlungsbedarf wird organisatorisch durch das Aufsetzen konkreter (Teil-)Projekte wahrgenommen

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Arbeiten mit UMLed und Delphi

2. Braunschweiger Linux-Tage. Vortrag über RAID. von. Thomas King Braunschweiger Linux-Tage Seite 1/16

Zeit- und Feriensaldoberechnung TimeSafe Leistungserfassung

DLLs (dynamic loaded libraries) mit MingW erstellen

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Deckblatt. Wie kann WinAC MP mit PC oder SPS Daten austauschen? Multi Panel mit WinAC MP. FAQ Januar Service & Support. Answers for industry.

4D Server v12 64-bit Version BETA VERSION

Wer wir sind. Qualität ist das Ergebnis gewissenhafter Arbeit. Denn nur die setzt sich durch. Unser Profil

Globale Scrum Retrospektive

Bibliothek an Leser- bitte melden. Workshop

Freifunk Halle. Förderverein Freifunk Halle e.v. IT Sicherheitskonzept. Registernummer bei der Bundesnetzagentur: 14/234

CFD * in der Gebäudetechnik

Programmiertechnik II

Bilder im Gemeindebrief ansprechend platzieren

Auf Nummer sicher. Der Kern der IT ist das beschleunigen von Arbeitsabläufen. Diesen kern pflegen wir.

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

Internet online Update (Internet Explorer)

Computer- und Medienservice Öffentliche Computerarbeitsplätze (ÖCAP) Willi Petrov

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Übersicht Oracle Lizenzierung Oracle Lizenz-Shop

5. Bildauflösung ICT-Komp 10

Test-Driven Design: Ein einfaches Beispiel

.. für Ihre Business-Lösung

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Flugdatenauswertung. Vorbemerkungen. BadElf. B. Sünder,

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

Bibliotheks-basierte Virtualisierung

Nuetzlicher Kleinkram

Datenübernahme easyjob 3.0 zu easyjob 4.0

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Wolff & Müller Baupartner

Zählen von Objekten einer bestimmten Klasse

Installation & Konfiguration AddOn AD-Password Changer

Einführung in die Informatik Tools

Cad-OasEs Int. GmbH. 20 Jahre UG/NX Erfahrung prägen Methodik und Leistungen. Nutzen Sie dieses Wissen!

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Modulare Programmierung

Dokumentation für das Spiel Pong

A Domain Specific Language for Project Execution Models

Transkript:

Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft Fallbeispiel Wettervorhersage VPE Swiss Workshop, HSR 24. Januar 2013 David Müller, Tobias Gysi Vision trifft Realität. Supercomputing Systems AG Phone +41 43 456 16 00 Technopark 1 Fax +41 43 456 16 10 8005 Zürich www.scs.ch

Motivation 2 Zürich 24.01.2013 by Supercomputing Systems AG

Wer ist SCS? 3 Zürich 24.01.2013 by Supercomputing Systems AG

Entwicklungsdienstleister im Technopark Zürich 80 Mitarbeiter Elektroingenieure Informatikingenieure Physiker, Mathematiker, etc. 100% Fokus auf Kundenprojekte 4 Zürich 24.01.2013 by Supercomputing Systems AG

5 Zürich 24.01.2013 by Supercomputing Systems AG Industrial Controls & Sensors

Automotive 6 Zürich 24.01.2013 by Supercomputing Systems AG

7 Zürich 24.01.2013 by Supercomputing Systems AG Supercomputing

Computerarchitektur-Trend 8 Zürich 24.01.2013 by Supercomputing Systems AG

Performanz #500 Performance (Rmax) [Tflop/s] Performance per core [Gflop/s] Core Count 1000000 100 100000 10 10000 1 1000 0.1 100 0.01 10 0.001 1 0.0001 1993 1993 1994 1994 1995 1995 1996 1996 1997 1997 1998 1998 1999 1999 2000 2000 2001 2001 2002 2002 2003 2003 2004 2004 2005 2005 2006 2006 2007 2007 2008 2008 2009 2009 2010 2010 2011 2011 2012 2012 9 Zürich 24.01.2013 by Supercomputing Systems AG

Das COSMO Wettermodell 10 Zürich 24.01.2013 by Supercomputing Systems AG

Das COSMO Wettermodell Partielle Differentialgleichungen auf einem regulären Gitter (Geschwindigkeiten, Druck, Temperatur, Feuchtigkeit, etc.) Lösung mit Finite-Differenzen-Methode Stencils 2.2 km horizontale Maschenweite 60 vertikale Schichten 11 Zürich 24.01.2013 by Supercomputing Systems AG

Auflösung des Wettermodelles Eine gute örtliche Auflösung ist der Schlüssel zu einer genauen Vorhersage, insbesondere im Alpenraum Eine Halbierung der horizontalen Maschenweite erhöht den Rechenaufwand ca. um Faktor 10 35 km 8.8 km 2.2 km 12 Zürich 24.01.2013 by Supercomputing Systems AG

Motivation für ein Refactoring von COSMO Steigerung der Performanz auf der aktuellen Infrastruktur (x86) Portierbarkeit auf neue Prozessorarchitekturen wie GPU Gleichzeitige Optimierung für die Ausführung auf verschiedenen Architekturen (Performance Portability) One single source-code Lesbarkeit und Erweiterbarkeit des Codes für die Anwender (Meteorlogen und Klimatologen) Langfristige Wartbarkeit des Codes (Informatiker) 13 Zürich 24.01.2013 by Supercomputing Systems AG

COSMO Code Struktur % runtime % lines of code Directives Rewrite 14 Zürich 24.01.2013 by Supercomputing Systems AG

Rewrite des Dynamischen Kernes von COSMO Stencil Bibliothek 15 Zürich 24.01.2013 by Supercomputing Systems AG

Stencils Ein Stencil (= Schablone) ist eine Berechnung mit fixem Zugriffsmuster, welche auf alle Gitterpunkte eines Gitters angewendet wird Typischerweise wenig Berechnungen und viel Speicherzugriffe Ausführungsgeschwindigkeit wird durch die Speicherbandbreite limitiert Viele Stencil Codes erreichen weniger als 10% der Peak Performance 2D-Laplacian lap(i,j,k) = 4.0 * data(i,j,k) + data(i+1,j,k) + data(i-1,j,k) + data(i,j+1,k) + data(i,j-1,k); 16 Zürich 24.01.2013 by Supercomputing Systems AG

Stencil Code: Herausforderung Stencil Codes bestehen aus 2 Hauptkomponenten Loop-Logik definiert Stencil Anwendungsbereich und Reihenfolge (grün) Update-Funktion definiert die Update Formel (blau) do k = kstart, kend do j = jstart, jend do i = istart, iend lap(i, j, k) = -4.0_ir * data(i, j, k) + & data(i+1, j, k) + data(i-1, j, k) + & data(i, j+1, k) + data(i, j-1, k) end do end do end do Loop-Logik Update-Funktion Synthetisches Beispiel mit sehr geringer Komplexität + Direktiven für Parallelisierung, Vektorisierung + Performance Optimierungen wie Cache Blocking + Flexibilität der Loop-Order / des Memory-Layouts 17 Zürich 24.01.2013 by Supercomputing Systems AG

Stencil Library: Beispiel Laplace enum { data, lap }; template<typename TEnv> struct Laplacian { }; STENCIL_STAGE(TEnv) STAGE_PARAMETER(FullDomain, data) STAGE_PARAMETER(FullDomain, lap) static void Do(Context ctx, FullDomain) { } ctx[lap::center()] = -4.0 * ctx[data::center()] + ctx[data::at(iplus1)] + ctx[data::at(iminus1)] + ctx[data::at(jplus1)] + ctx[data::at(jminus1)]; Functor implementiert Update-Funktion 18 Zürich 24.01.2013 by Supercomputing Systems AG IJKRealField lapfield, datafield; Stencil stencil; StencilCompiler::Build( ); stencil, "Example", calculationdomainsize, StencilConfiguration<Real, BlockSize<32,4> >(), pack_parameters( ), Param<lap, cinout>(lapfield), Param<data, cin>(datafield) concatenate_sweeps( ) define_sweep<ckincrement>( ) define_stages( ) StencilStage< >() Laplacian, IJRange<cComplete,0,0,0,0>, KRange<FullDomain,0,0> for(int step = 0; step < numofsteps; ++step) { } stencil.apply(); Domain Specific Embedded Language (DSEL) definiert Loop-Logik

Domain Specific Embedded Language (DSEL) Übersetzung am Laplace Beispiel DSEL wird von Compiler und Stencil Bibliothek interpretiert und in Plattformabhängigen Code übersetzt (hier für die x86 Architektur) Loop beschrieben in DSEL: #pragma omp parallel for for(int block=0; block < numofblocks; ++block) { context.movetoblock(block); concatenate_sweeps( define_sweep<ckincrement>( define_stages( StencilStage< Laplacian, IJRange<cComplete,0,0,0,0>, KRange<FullDomain,0,0> >() ) ) ) for(int i=iblockstart; i < iblockend; ++i) { for(int j=jblockstart; j < jblockend; ++j) { context.moveto(i, j, kstart); for(int k=kstart; k < kend; ++k) { Laplacian::Do(context, FullDomain); context.advance<0,0,1>(); } } } } 19 Zürich 24.01.2013 by Supercomputing Systems AG

Ergebnisse der Bibliotheksentwicklung Die Stencil Bibliothek separiert Loop-Logik und Update-Funktion Die Loop-Logik wird mittels einer domänenspezifischen Sprache definiert Die Stencil Bibliothek unterstützt CPUs und GPUs Für beide Architekturen wird effizienter Code generiert CPU GPU Speicherlayout KIJ IJK Parallelisierung OpenMP CUDA Die komplette Dynamik von COSMO wurde erfolgreich implementiert 20 Zürich 24.01.2013 by Supercomputing Systems AG

Beschleunigung der Dynamik Application Performance - Interlagos 16 Core vs. Tesla X2090 Überarbeiteter Code, GPU 4.73 Überarbeiteter Code, CPU 1.65 Ursprünglicher Code, CPU 1.00 0.00 1.00 2.00 3.00 4.00 5.00 21 Zürich 24.01.2013 by Supercomputing Systems AG

Schlussfolgerungen 22 Zürich 24.01.2013 by Supercomputing Systems AG

Schlussfolgerungen Performance kritischer Code muss für jede Prozessorarchitektur optimiert werden Optimale Prozessorarchitektur ändert sich während des Software Life-Cycle COSMO ist ca. 30 Jahre alt und hat bereits Vektorrechner, PPC, x86 und GPU erlebt Anwendercode sollte Plattformunabhängig sein Für Linear Algebra Codes ist dies Tatsache dank BLAS Domain Specific Embedded Languages (DSELs) ermöglichen Bibliotheksunterstützung für komplexere algorithmische Motive 23 Zürich 24.01.2013 by Supercomputing Systems AG

Schlussfolgerungen Die Stencil Bibliothek erreicht Plattformunabhängigkeit Nur eine einzige Code-Basis für die Anwender Keine Performance-Optimierungen / Direktiven im Anwendercode Unterstützung für weitere Architekturen erfordert ausschliesslich Anpassungen an der Library Die Stencil Bibliothek verbessert die Ausführungsgeschwindigkeit Beschleunigung um Faktor 1.65 auf der identischen Hardware gezeigt 24 Zürich 24.01.2013 by Supercomputing Systems AG

Herzlichen Dank für die Unterstützung 25 Zürich 24.01.2013 by Supercomputing Systems AG

Supercomputing Systems AG info@scs.ch +41 43 456 16 00 Vision meets reality. Supercomputing Systems AG Phone +41 43 456 16 00 Technopark 1 Fax +41 43 456 16 10 8005 Zürich www.scs.ch