Refactoring the UrQMD Model for Many- Core Architectures Mathias Radtke Semiar: Softwaretechnologie (WS 2013/2014 Goethe-Universität Frankfurt.

Slides:



Advertisements
Ähnliche Präsentationen
Matrixmultiplikation
Advertisements

Phasen und ihre Workflows
Leistung.
< CUDA implementation>
Constantin Timm Informatik 12 TU Dortmund
Computer Von Alexander Wild.
Das „Vorgehensmodell“
PC-Cluster.
Terra Workstation. Terra Workstation Unterschied Workstation PC Lösungen an Fallbeispielen einer fiktiven Firma Fallbeispiele aus den Abteilungen.
3. Kapitel: Komplexität und Komplexitätsklassen
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Zentraleinheit CPU, Motherbord, RAM
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Zentraleinheit CPU, Motherbord, RAM
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Funktionsmerkmale und Vorteile Die Intel Core i7 Prozessoren der zweiten Generation verfügen über folgende Funktionsmerkmale: Die Intel® Turbo-Boost-Technik.
Java: Objektorientierte Programmierung
Komponentenbasierter Taschenrechner mit CORBA
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Intelligentes Crawling im WWW mit Hilfe intuitiver Suchbedingungen
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Christian Steinle, Joachim Gläß, Reinhard Männer
Matrix Multiplication on CUDA
Leitfaden Motivation Was ist CUDA ? NVIDIA Grafikkarte Programmierung
Maike Thiel Kezban Akayin Kirstin Körner Hayriye Görsün präsentiert.
Duo- und Quad Prozessor-Architektur
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Aufbau und Funktionsweise
F.Ladstätter und R.Elsässer VP Wissenschaftliches Arbeiten und Präsentation 13. Dezember 2001.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Präsentation von Alexander Schönfeld
Framework for Integrated Test (FIT)
Clustering mittels Grafikprozessor
Grafikkarten.
INTEL Pentium 4 Prozessor
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
GPU Computing Burim Kameri Fachhochschule Hannover (FHH)
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Adaption von K-Means Algorithmen an Datenbanken
Algorithm Engineering „GPU Algorithmen“
Graphik, Doku und Monitor für TWS
Moodle in der Volksschule: 1
Ein Vortrag von Simon Bayer
Eine Übersicht von Margarete Streitwieser
JOMP
Parallelisierung für Multiprozessor-Maschinen
xRM1 Pilot Implementierung
Central Processing Unit von David Kleuker und Thomas Auner
must-haves des POV-PCs
Universität zu Köln WS 2014/15 HKI – Softwaretechnologie 2 (Teil 1) Von Tilo Kochs.
Computer Algebra für Brüche --- angepasst an Ausbildungszwecke
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie.
WINDOWS 2003 Server. Standart Varianten für 32 Bit: Web Edition: Unterstützt Single(1)- oder Dual(2)-Prozessor-Systeme und bis zu 2 GB RAM 32-Bit Standard.
Microsoft Windows Workstation Versionen
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Parallelising Molecular Dynamics for Message Passing Systems (complete) Martin Gerber
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
A. Steininger TU Vienna 1 Multicore eleganter Work-Around um die Design-Crisis Problemverschiebung in die SW (= auf höhere Ebene) ABER: hohe Parallelität.
Hardware / Software Codesign Hardware versus Software.
J. Nürnberger2007 / 081 Tabellenkalkulation (3) Arbeiten mit Formeln am Beispiel von OpenOffice.org Calc.
 Präsentation transkript:

Refactoring the UrQMD Model for Many- Core Architectures Mathias Radtke Semiar: Softwaretechnologie (WS 2013/2014 Goethe-Universität Frankfurt

Agenda: 1.UrQMD 2.CPU Vs. GPU 3.Von FORTRAN zu C++/OpenCL 4.Ergebnisse 5.Schlusswort

1.UrQMD Abkürzung für Ultra relativistic Quantum Molecular Dynamics Physikalisches Modell zur Beschreibung des Transports, der Kollision, der Streuung und des Verfalls von Kernteilchen Vor fast 20 Jahren implementiert in FORTRAN 77 und immer weder erweitert Codedesign und Effizienz von geringem Interesse Großteil der Berechnungen verwendet für relativistisch hydrodynamischen Verhalten von Kernteilchen (SHASTA) SHASTA ist rein sequentiell UrQMD ist eine große Sammlung von physikalischen Formeln in implantierter Form

1.UrQMD Neue Erkenntnisse werden mit UrQMD gewonnen und implementiert Ergebnisse aus Experimenten werden in UrQMD hinzugefügt Ein stetiger Kreislauf entsteht

1.UrQMD Trotz des Alters ein wertvolles Programm für die Physik Keine neue Softwaretechnologie und kaum neue Hardwaretechnologie seit Implementierung FORTRAN: Problemorientiert Keine globalen Variablen, common blocks als Ersatz goto-Anweisungen, der weltberühmte Spaghetti-Code Kaum Unterstützung von Parallelität Es gibt Erweiterungen um FORTAN auf HPCs zu benutzen Nicht Sinn der Sache Refactoringtool f2c empfehlenswert, nur simpelste Anweisungen Experte leistet bessere Arbeit

1.UrQMD ZIEL: UrQMD an neue Soft- und Hardwaretechnologie anpassen C++/OpenCL auf CPUs und GPUs UrQMD muss gleiche Ergebnisse liefern wie unter FORTRAN Verbesserte Leistung kaum noch über Taktraten möglich

2. CPU Vs. GPU (Ochsen gegen Hunde) CPUs haben ausgeklügelte Parallelität Branch-Prediction Pipelining Multithreads Out-of-Order-Execution GPUs sind Arbeitsmaschinen Mehr als 1000 Prozessoren (AMD Radeon HD 7970, 2048 Streamprozessoren) Takt von ca. 1GHz 4 Threads pro Streamprozessor, 250MHz / Thread Ideal für Fließkommaberechnung

2. CPU Vs. GPU (Ochsen gegen Hunde) Speicheranbindung DDR3-2133, 17,066GByte/s (peak) 1 128GB im Desktop Rechner möglich, 256GB im Server-Blade GDDR5, 576 Gbyte/s (peak), AMD Radeon GB, keine Erweiterung möglich Daten müssen entweder in/aus den/m Hauptspeicher oder Daten müssen verkleinert werden

2. CPU Vs. GPU Ziel : Symbiose zwischen CPU und GPU Vorteile beider Architekturen miteinander arbeiten lassen OpenCL bietet diese Möglichkeit Erweiterbar auf verwendete CPU/GPU Nachteil: Portabilität leidet NVIDIA CUDA verwendet nur NVIDIA Hardware, OpenCL hingegen alle Hersteller

3. Fortran zu C++/OpenCL SHASTA am zeitaufwendigsten Ideal für das Refactoring Realisierung in zwei Schritten 1.Ein Hybrid aus FORTRAN und C++ wird erstellt. FORTRAN Routinen und C++-Funktionen 2.Vollständige C++ Version mit allen Eigenschaften der FORTRAN-Version C++-Version wird vollständig in OpenCL überführt

3. Fortran zu C++/OpenCL Stolpersteine sind vorhanden Keine Klassen auf GPUs Kernel-Orchestrierung, Bufferablauf und Queue in einer Klasse Einige Klassen aus SHASTA ausgelassen, der Algorithmus arbeitet dennoch wie er soll (changegrid) Der Hybrid: Mischung aus FORTRAN-Routinen und C++-Funktionen Test für numerische Gleichungen Verhalten von SHASTA nachgeahmt

3. Fortran zu C++/OpenCL Die C++-Version kann verschiedene Parameter zum Start als Eingabe annehmen Zeit, Eingabedateien und Partikelzustand Konstruktor in C++ kümmert sich um die Eingabeparameter FORTRAN-Version greift mehrmals auf Massenspeicher zu und beinhaltet Verzweigungen Verlängerung der Laufzeit

3. Fortran zu C++/OpenCL

Die Erstellung des Hybriden wurde stetig Kontrolliert Jede neue Methode wurde direkt auf Funktionalität geprüft, sodass kein falsches Ergebnis abhängige Berechnungen verfälscht. Tests und Refactoring von Hand durchgeführt C++ und FORTRAN behandeln mathematische Gleichungen nicht gleich, Ergebnisse unterscheiden sich leicht C-SHASTA (C++/OpenCL-Version) Berechnet tausende von Datenströmen, ein guter Datenfluss ist notwendig So viele Daten wie möglich parallel Berechnen bevor ein sequentieller Teil kommt

3. Fortran zu C++/OpenCL

Grafische Ausgabe über ein 3D-Gitter mit 8Mio Zellen Im Worst-Case 8Mio Informationen Berechnen und grafisch ausgeben GPUs haben weniger Speicher als die CPU Verringerung der zu speichernden Informationen Wir rechnen in einem 1D-Array Viel mehr Berechnungen notwendig, aber: Geringerer Speicherbedarf Ergebnisse schneller vorhanden C-SHASTA ist erweiterbar mittels Modulen Keine Änderung im Code nötig

4. Ergebnisse C-SHASTA wurde auf folgender Hardware getestet NVIDIA Tesla C1060 AMD Radeon HD 5870 AMD Radeon HD 7970 AMD Opteron 6172 (24 Cores) Die Meisten Berechnungen wurde auf dem LOEWE-CSC gerechnet Ergebnisse wurden mit realistischen Daten gerechnet Tests: Au-Au Kollision (Goldpartikel) Eine expandierende Kugel mit r=2fm (1fm = m)

4. Ergebnisse Au-Au-Kollision

4. Ergebnisse Au-Au-Kollision Laufzeit: FORTRAN: 75Min AMD Radeon HD 5870: 30 Sekunden (Faktor 160) AMD Radeon HD 7970: weniger als 10 Sekunden (Faktor 460)

4. Ergebnisse Au-Au-Kollision

4. Ergebnisse Au-Au-Kollision

4. Ergebnisse Expandierende Kugel mit r = 2fm

4. Ergebnisse Expandierende Kugel mit r = 2fm

5. Schlusswort Refactoring im Rahmen einer Dissertation angefertigt Nur ein Teil von UrQMD, benötigte aber die meiste Rechenzeit Enorm gesteigerte Laufzeit, Faktor 460 im besten Fall