PGI Accelerator Model
|
|
- Maria Fürst
- vor 6 Jahren
- Abrufe
Transkript
1 PGI Accelerator Model Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig Hardware-Software-Co-Design Universität Erlangen-Nürnberg Philip Höhlein, Nils Werner 1
2 Übersicht Motivation Das PGI Accelerator Modell Eigenschaften einer NVIDIA GPU Funktionsweise Fazit Philip Höhlein, Nils Werner 2
3 Übersicht Motivation Das PGI Accelerator Modell Eigenschaften einer NVIDIA GPU Funktionsweise Fazit Philip Höhlein, Nils Werner 3
4 Motivation GPUs bieten hohen Performancegewinn bei parallelisierbaren Schleifen Fehlende Portabilität existierender Lösungen (CUDA, OpenCL,...) Umständliche Erzeugung der Schnittstellen und manuelle Allozierung des GPU-Speichers Daher wurde PGI Accelerator entworfen... Philip Höhlein, Nils Werner 4
5 Motivation Unterstützung für NVIDIA Familie (weitere in Entwicklung) Zusatz für Hochsprachen C und Fortran Programmieren der GPU alleine mit Pragmas Code zum Speicher Allozieren u. Kopieren wird vom Compiler automatisch generiert Schleifen werden automatisch in Kernels umgewandelt und zur GPU übertragen Spezielle Compiler PGCC und PGFortran Philip Höhlein, Nils Werner 5
6 Übersicht Motivation Das PGI Accelerator Modell Eigenschaften einer NVIDIA GPU Funktionsweise Fazit Philip Höhlein, Nils Werner 6
7 Das PGI Accelerator Modell OpenMP-Ähnliche Syntax #pragma in C #pragma acc region { } [...] Sentinals in Fortran!$acc region [...]!$acc end region Philip Höhlein, Nils Werner 7
8 Das PGI Accelerator Modell Regionen: (compute) region: Auswahl der Schleifen und zu kopierenden Daten data region (optional): Manuelle Kopieranweisungen - copy: Kopiere Variable zur GPU und anschließend zurück - local: Erzeuge lokale Variablen auf GPU - copyin: Kopiere Variable zur GPU und nicht zurück loop (optional): Optionen für die direkt folgende Schleife Philip Höhlein, Nils Werner 8
9 Das PGI Accelerator Modell Beispiel:!$acc data region copy(a(1:n,1:m)) &!$acc& local(b(2:n 1,2:m 1)) copyin(w(2:n 1)) do while(resid.gt.tol) resid = 0.0!$acc region do i = 2, n 1 do j = 2, m 1 b(i,j) = 0.25*w(i)*(a(i 1,j)+a(i+1,j)+a(i,j 1)+a(i,j+1)) enddo enddo do i = 2, n 1 do j = 2, m 1 resid = resid + (b(i,k) a(i,j))**2 a(i,j) = b(i,j) enddo enddo!$acc end region enddo!$acc end data region Philip Höhlein, Nils Werner 9
10 Übersicht Motivation Das PGI Accelerator Modell Eigenschaften einer NVIDIA GPU Funktionsweise Fazit Philip Höhlein, Nils Werner 10
11 Eigenschaften einer NVIDIA GPU... Multiprozessor Multiprozessor Multiprozessor Shared Memory Shared Memory Shared Memory GPU Speicher Host Speicher PCI Express Philip Höhlein, Nils Werner 11
12 Eigenschaften einer NVIDIA GPU Kernel Grid Block Block Block Threads Warp Threads Threads Block Block Block Threads Threads Threads Philip Höhlein, Nils Werner 12
13 Übersicht Motivation Das PGI Accelerator Modell Eigenschaften einer NVIDIA GPU Funktionsweise Fazit Philip Höhlein, Nils Werner 13
14 Funktionsweise 1. Finden von Parallelisierungsmöglichkeiten Suchregionen werden z.b. mittels #pragma acc vom Programmierer festgelegt Feedback wird zu Kompilierungszeit gegeben Philip Höhlein, Nils Werner 14
15 Funktionsweise 2. Abbilden der parallelen Schleifen auf die Hardware Jede Schleife wird auf 2 oder mehr verschachtelte Schleifen abgebildet Zwischenliegende Schleifen werden umsortiert um Stride-1 Speicherzugriffe zu ermöglichen Ggf. wird innerste Schleife abgerollt Anzahl Threads pro Block wird so angepasst um sämtliche MPs (min. ein Block pro MP!) auszulasten Daten für den Shared Memory werden auswählt Philip Höhlein, Nils Werner 15
16 Funktionsweise Unter Beachtung der User Direktiven: Äußerste Schleifen werden auf Blockindexraum abgebildet Gleichzeitig auf mehreren MPs MIMD-Parallelisierung Innerste Schleifen werden auf Threadindexraum abgebildet Gleichzeitig in einem Multiprozessor SIMT/Vektor-Parallelisierung Philip Höhlein, Nils Werner 16
17 Funktionsweise 3. Generierung und Optimierung des Kernel-Codes Maximale Anzahl der Threads pro Block festgelegt durch deren Resourcenbedarf (Shared Memory + Register) Compiler probiert 1-, 2- und 3-dimensionale Blockformen Maximal 512 Threads pro Block möglich: Sämtliche möglichen Blockformen innerhalb der Limits finden Philip Höhlein, Nils Werner 17
18 Funktionsweise Blockform wird gewählt nach 1 Plan mit den wenigsten Speicherzugriffen 2 Falls gleich, Plan mit den wenigsten zufälligen Speicherzugriffen 3 Falls gleich, Plan mit der größten Blockgröße 4 Falls gleich, Plan mit der größten Verschachtelungstiefe 5 Falls gleich, Plan mit kleinstem Speicherbedarf 6 (weitere kleinere, Unentschieden abwendende Regeln) Philip Höhlein, Nils Werner 18
19 Funktionsweise Beispiel do i = 2, n 1 do j = 2, m 1 b(i,j) = enddo enddo do i0 = 2, n 1, bi0!blockindex x do j0 = 2, m 1, bj0!blockindex y do i1 = i0, min(n 1, i0+bi0 1), bi1!sequentiell do j1 = j0, min(m 1, j0+bj0 1), bj1!sequentiell do i = i1, min(n 1, i1+bi1 1)!Threadindex x do j = j1, min(m 1, j1+bj1 1)!Threadindex y b(i,j) = enddo enddo enddo enddo enddo enddo Philip Höhlein, Nils Werner 19
20 Funktionsweise do i = 2, n-1 do j = 2, m-1 Philip Höhlein, Nils Werner 20
21 Funktionsweise do i0 =... do j0 =... do i1 =... do j1 =... do i =... do j =... Zum Beispiel: i0, j0 in 100er- Schritten i1,j1 in 10er- Schritten i, j in 1er-Schritten Philip Höhlein, Nils Werner 21
22 Funktionsweise Ausschnitt aus Aufteilung der Daten in x- und y-indizes Philip Höhlein, Nils Werner 22
23 Funktionsweise Feedback zu Kompilierzeiten smooth: 3, PGI Unified Binary version for tp=k8 64e ta=host 10, Loop interchange produces reordered loop nest: 11,10... smooth: 3, PGI Unified Binary version for tp=k8 64e ta=nvidia 8, Generating copyout(a(2:n 1,2:m 1)) Generating copyin(b(1:n,1:m)) Generating copyout(b(2:n 1,2:m 1))... Philip Höhlein, Nils Werner 23
24 Funktionsweise Feedback zu Kompilierzeiten for( i = 0; i < n 1; ++i ){ y = a[i+1]; b[i] = x + y; x = y; } >> 48, Loop carried scalar dependence for 'x' for( i = 0; i < n 1; ++i ){ b[i] = a[i] + a[i+1]; } Philip Höhlein, Nils Werner 24
25 Funktionsweise Feedback zu Kompilierzeiten for( i = 0; i < n; ++i ){ for( j = 0; j < n; ++i ){ a[j] = b[i][j] * w + c[i]*d[j]; if( a[j] > 0 ) p[i] = a[j]; } } >> Parallelization would require privatization of array 'a[0:n 1]' #pragma acc for private(a[0:n 1]) Philip Höhlein, Nils Werner 25
26 Funktionsweise Feedback zu Kompilierzeiten Accelerator Kernel Timing data c5.c test 32: region entered 1 time time(us): total= init= region=3903 kernels=44 data=3859 w/o init: total=3903 max=3903 min=3903 avg= : kernel launched 1 times grid: [7x7] block: [16x16] time(us): total=28 max=28 min=28 avg=28 39: kernel launched 1 times grid: [7x7] block: [16x16] time(us): total=16 max=16 min=16 avg=16 Philip Höhlein, Nils Werner 26
27 Übersicht Motivation Das PGI Accelerator Modell Eigenschaften einer NVIDIA GPU Funktionsweise Fazit Philip Höhlein, Nils Werner 27
28 Fazit PGI Accelerator versucht Auf existierenden Sprachen aufzubauen Den Anwender mit Feedback zu unterstützen Nicht Stride-1 Zugriffe zu vermeiden Portabel zu sein Noch nicht portabel z.b. zu ATI oder Intel Larrabee Planungen: Abbildung auf OpenMP, Standard Multicore funktioniert nur mit Fortran und C, kein C++, keine Structs Fehlt die feingranulare manuelle Optimierbarkeit z.b. von CUDA, Code ist meist langsamer Philip Höhlein, Nils Werner 28
29 Quellen [1] WOLFE, M. Implementing the PGI Accelerator Model (2010) [2] LEBACK, B., NAKAMOTO S., WOLFE, M. An Accelerator Programming Model for Multicore (2009) [3] WOLFE, M. et al. The PGI Accelerator Programming Model on NVIDIA GPUs (2009) [4] BRADLEY, T. Advanced Cuda Optimization (2010) Philip Höhlein, Nils Werner 29
30 Vielen Dank für die Aufmerksamkeit! Noch Fragen? Philip Höhlein, Nils Werner 30
Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern
Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern Institut für Betriebssysteme und Rechnerverbund TU Braunschweig 25.10., 26.10.
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Ulrich Körner, Nathanael Hübbe hermann.lenhart@zmaw.de OpenMP Einführung I: Allgemeine Einführung Prozesse
MehrParallele Programmierung mit OpenMP
Parallele Programmierung mit OpenMP - Eine kurze Einführung - 11.06.2003 RRZN Kolloquium SS 2003 1 Gliederung 1. Grundlagen 2. Programmiermodell 3. Sprachkonstrukte 4. Vergleich MPI und OpenMP 11.06.2003
MehrGPGPU-Architekturen CUDA Programmiermodell Beispielprogramm. Einführung CUDA. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung CUDA Friedrich-Alexander-Universität Erlangen-Nürnberg PrakParRA, 18.11.2010 Outline 1 GPGPU-Architekturen 2 CUDA Programmiermodell 3 Beispielprogramm Outlook 1 GPGPU-Architekturen 2 CUDA Programmiermodell
MehrOpenCL. OpenCL. Boris Totev, Cornelius Knap
OpenCL OpenCL 1 OpenCL Gliederung Entstehungsgeschichte von OpenCL Was, warum und überhaupt wieso OpenCL CUDA, OpenGL und OpenCL GPUs OpenCL Objekte Work-Units OpenCL Adressbereiche OpenCL API Codebeispiel
MehrOpenCL Implementierung von OpenCV Funktionen
Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen julian.mueller@e-technik.stud.uni-erlangen.de Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL
MehrGPGPU mit NVIDIA CUDA
01.07.12 GPGPU mit NVIDIA CUDA General-Purpose on Formatvorlagecomputing des Graphics Processing durch Units Untertitelmasters mit KlickenCompute bearbeiten NVIDIA Unified Device Architecture Gliederung
MehrMasterpraktikum Scientific Computing
Masterpraktikum Scientific Computing High-Performance Computing Thomas Auckenthaler Wolfgang Eckhardt Prof. Dr. Michael Bader Technische Universität München, Germany Outline Organisatorisches Entwicklung
MehrOptimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks
Fachhochschule Köln, Campus Gummersbach Optimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks 03.06.2009 Eugen Sewergin, B. Sc. Erstprüfer: Prof. Dr.
MehrProjektseminar Parallele Programmierung
HTW Dresden WS 2014/2015 Organisatorisches Praktikum, 4 SWS Do. 15:00-18:20 Uhr, Z136c, 2 Doppelstunden o.g. Termin ist als Treffpunkt zu verstehen Labore Z 136c / Z 355 sind Montag und Donnerstag 15:00-18:20
MehrCUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1
CUDA Jürgen Pröll Multi-Core Architectures and Programming Jürgen Pröll 1 Image-Resize: sequentiell resize() mit bilinearer Interpolation leicht zu parallelisieren, da einzelne Punkte voneinander unabhängig
MehrMulticore-Architekturen
Universität Erlangen- Nürnberg Technische Universität München Universität Stuttgart Multicore-Architekturen Vortrag im Rahmen der Ferienakademie 2009 Kurs 1: Programmierkonzepte für Multi-Core Rechner
MehrEinige Grundlagen zu OpenMP
Einige Grundlagen zu OpenMP Stephanie Friedhoff, Martin Lanser Mathematisches Institut Universität zu Köln 22. Juni 2016 Überblick Was ist OpenMP? Basics Das OpenMP fork-join-modell Kompilieren und Ausführen
MehrGPGPU-Programming. Constantin Timm Informatik 12 TU Dortmund 2012/04/09. technische universität dortmund. fakultät für informatik informatik 12
12 GPGPU-Programming Constantin Timm Informatik 12 TU Dortmund 2012/04/09 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt. Motivation
MehrHochleistungsrechnen Grafikkartenprogrammierung. Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen
Hochleistungsrechnen Grafikkartenprogrammierung Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen Übersicht Hintergrund und Entwicklung von GPGPU Programmierumgebungen &
MehrTransparente Nutzung von Multi-GPU Cluster unter Java/OpenMP
Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Dipl. Inf. Thorsten Blaß Programming Systems Group Martensstraße 3 91058 Erlangen Ausblick Motivation Einführung Java/OpenMP (JaMP) JaMP Sprache
MehrProgrammierung von Many-Cores. Seminar: Software Engineering für Exascale Computing
Programmierung von Many-Cores Seminar: Software Engineering für Exascale Computing Patrizia Peller April 18, 2013 Programmierung von Many-Cores Hardware-Architekturen Anforderungen an Programmiersprachen
MehrEfficient Matrix Inversion in CUDA
Seminar Multicore Architectures and Programming 08 am Lehrstuhl Informatik 12, Hardware-Software-Co-Design Efficient Matrix Inversion in CUDA Robert Grimm, Matthias Schneider Friedrich-Alexander Universität
MehrParallele Programmierung mit GPUs
Parallele Programmierung mit GPUs Jutta Fitzek Vortrag im Rahmen des Moduls Parallele Programmierung, WS12/13, h_da Agenda GPUs: Historie GPU Programmierung Konzepte Codebeispiel Generelle Tipps & Tricks
MehrGPU-Computing im Rahmen der Vorlesung Hochleistungsrechnen
GPU-Computing im Rahmen der Vorlesung Hochleistungsrechnen Universität Hamburg Scientific Visualization and Parallel Processing Übersicht Hintergrund und Entwicklung von GPGPU Programmierumgebungen & Werkzeuge
MehrProgrammierung von Graphikkarten
Programmierung von Graphikkarten Stefan Lang Interdisziplinäres Zentrum für Wissenschaftliches Rechnen Universität Heidelberg INF 368, Raum 532 D-69120 Heidelberg phone: 06221/54-8264 email: Stefan.Lang@iwr.uni-heidelberg.de
Mehr1. Einführung in OpenMP
1. Einführung in OpenMP Übersicht Einführung Homogene und inhomogene Arbeitsverteilung Rekursive Parallelität Beispiele Parallele Programmierung 1 Nicolas Maillard, Marcus Ritt 1 Überblick OpenMP: Vereinfachte
MehrGPU-Computing. Michael Vetter
GPU-Computing Universität Hamburg Scientific Visualization and Parallel Processing @ Informatik Climate Visualization Laboratory @ Clisap/CEN Übersicht Hintergrund und Entwicklung von GPGPU Programmierumgebungen
MehrOpenMP. Viktor Styrbul
OpenMP Viktor Styrbul Inhaltsverzeichnis Was ist OpenMP Warum Parallelisierung Geschichte Merkmale von OpenMP OpenMP-fähige Compiler OpenMP Ausführungsmodell Kernelemente von OpenMP Zusammenfassung Was
MehrLeistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur
Leistungs- und Geschwindigkeitssteigerung von LabVIEW-Projekten Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur Agenda 1. Einführung 2. Hilfreiche Werkzeuge zur Codeanalyse 3. Benchmarks für LabVIEW-VIs
MehrLinux-Cluster mit Raspberry Pi. Dr. René Richter Sächsische Studienakademie Dresden rene.richter@ba-dresden rene.richter@namespace-cpp.
Linux-Cluster mit Raspberry Pi Dr. René Richter Sächsische Studienakademie Dresden rene.richter@ba-dresden rene.richter@namespace-cpp.de Lange Nacht der Wissenschaften 2013 Moore s Law Moore s Law (1965)
MehrParalleles Rechnen: Multicores, Playstation 3, Rekonfigurierbare Hardware
Paralleles Rechnen: Multicores, Playstation 3, Rekonfigurierbare Hardware Oliver Sinnen o.sinnen@auckland.ac.nz www.ece.auckland.ac.nz/~sinnen/ Von wo? Neuseeland Auckland Wirtschaftszentrum Größte Stadt
MehrBeschreiben Sie die Eigenschaften der verschiedenen Rechnertypen an Hand:
Hochschule Harz FB Automatisierung/Informatik Fachprüfung: Parallele Algorithmen (Musterklausur) Alle Hilfsmittel sind zugelassen! 1. Aufgabe Beschreiben Sie die Eigenschaften der verschiedenen Rechnertypen
MehrProgrammierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de
> Programmierbeispiele und Implementierung Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de 2 > Übersicht > Matrix Vektor Multiplikation > Mandelbrotmenge / Apfelmännchen berechnen > Kantendetektion
MehrTag der Umweltmeteorologie 12.05.2015. Michael Kunz
Tag der Umweltmeteorologie 12.05.2015 Michael Kunz Beschleunigung von Ausbreitungsmodellen durch Portierung auf Grafikkarten Einleitung Das GRAL/GRAMM-System Cuda-GRAL Ergebnisse Vergleich der Modellergebnisse
MehrAufgabe 1 Entwicklung einer Virtuellen Maschine
Aufgabe 1 Entwicklung einer Virtuellen Maschine Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Entwicklung
MehrAktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation
Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation Kai Diethelm GNS Gesellschaft für numerische Simulation mbh Braunschweig engineering software development Folie 1 Überblick Vorstellung
MehrOpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen.
OpenCL Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen.de Abstract: In diesem Dokument wird ein grundlegender Einblick in das relativ
MehrShared-Memory Parallelisierung von C++ Programmen
Shared-Memory Parallelisierung von C++ Programmen 9. Februar 2006 1 Übersicht Ergebnisse Zusammenfassung 2 3 Übersicht Ergebnisse Zusammenfassung Übersicht Verbreitete Parallelisierungstechniken für Shared-Memory:
MehrFPGA Beschleuniger. Your Name. Armin Jeyrani Mamegani Your Organization (Line #2)
FPGA Beschleuniger 15.12.2008 Armin Jeyrani Mamegani Your Name HAW Hamburg Your Title Department Your Organization Informatik (Line #1) Your Organization (Line #2) Einleitung Wiederholung aus AW1: Handy
MehrParallel Regions und Work-Sharing Konstrukte
Parallel Regions und Work-Sharing Konstrukte Um eine Parallelisierung von größeren Programmabschnitten, als es einzelne Schleifen sind, zu ermöglichen, stellt OpenMP als allgemeinstes Konzept die Parallel
MehrOpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009
- Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009 Grundlagen der Parallelen Programmierung Hardware Threads vs. Prozesse Kritische Abschnitte Lange
MehrGrafikkarten-Architektur
> Grafikkarten-Architektur Parallele Strukturen in der GPU Name: Sebastian Albers E-Mail: s.albers@wwu.de 2 > Inhalt > CPU und GPU im Vergleich > Rendering-Pipeline > Shader > GPGPU > Nvidia Tesla-Architektur
MehrSeminar GPU-Programmierung/Parallelverarbeitung
Seite iv Literaturverzeichnis 1) Bengel, G.; et al.: Masterkurs Parallele und Verteilte Systeme. Vieweg + Teubner, Wiesbaden, 2008. 2) Breshears, C.: The Art of Concurrency - A Thread Monkey's Guide to
MehrI Grundlagen der parallelen Programmierung 1
vii I Grundlagen der parallelen Programmierung 1 1 Einführung...... 3 1.1 Paradigmenwechsel in der Softwareentwicklung..... 4 1.2 Anwendungsbereiche...... 5 1.3 Parallelität in der Hardware..... 5 1.3.1
MehrExascale Computing. = Exascale braucht Manycore-Hardware...und was für Software??? 46/58
Exascale Computing Die FLOP/s-Tabelle: Name Faktor erreicht heute Giga 10 9 1976 CPU-Kern Tera 10 12 1997 Graphikkarte (GPU) Peta 10 15 2009 Supercomputer Exa 10 18 2020(?) Der gegenwärtig schnellste Rechner
MehrGPGPU-Architekturen CUDA Programmiermodell Beispielprogramm Organiosatorisches. Tutorial CUDA. Ralf Seidler
Friedrich-Alexander-Universität Erlangen-Nürnberg 05.10.2010 Outline 1 GPGPU-Architekturen 2 CUDA Programmiermodell 3 Beispielprogramm 4 Organiosatorisches Outlook 1 GPGPU-Architekturen 2 CUDA Programmiermodell
MehrModerne parallele Rechnerarchitekturen
Seminar im WS0708 Moderne parallele Rechnerarchitekturen Prof. Sergei Gorlatch Dipl.-Inf. Maraike Schellmann schellmann@uni-muenster.de Einsteinstr. 62, Raum 710, Tel. 83-32744 Dipl.-Inf. Philipp Kegel
MehrEinführung in die Parallele Programmierung
Einführung in die Parallele Programmierung K. Benkert 1, A. Stock 2 1 High Performance Computing Centre Stuttgart www.hlrs.de Universität Stuttgart 2 Institut für Aerodynamik und Gasdynamik (IAG) www.iag.uni-stuttgart.de
MehrHochleistungsrechnen Hybride Parallele Programmierung. Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen
Hochleistungsrechnen Hybride Parallele Programmierung Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen Inhaltsübersicht Einleitung und Motivation Programmiermodelle für
MehrStaff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2013. Tim Conrad
Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2013 Tim Conrad Staff Tim Conrad AG Computational Proteomics email: conrad@math.fu-berlin.de Telefon: 838-51445 Büro: Raum 138,
MehrDie beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft. Fallbeispiel Wettervorhersage
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
MehrIntel Cluster Studio. Michael Burger FG Scientific Computing TU Darmstadt michael.burger@sc.tu-darmstadt.de
Intel Cluster Studio Michael Burger FG Scientific Computing TU Darmstadt michael.burger@sc.tu-darmstadt.de 19.03.13 FB Computer Science Scientific Computing Michael Burger 1 / 30 Agenda Was ist das Intel
MehrIntroduction Workshop 11th 12th November 2013
Introduction Workshop 11th 12th November 2013 Lecture I: Hardware and Applications Dr. Andreas Wolf Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum Overview Current and next System Hardware Sections
MehrGrundlagen der Parallelisierung
Grundlagen der Parallelisierung Philipp Kegel, Sergei Gorlatch AG Parallele und Verteilte Systeme Institut für Informatik Westfälische Wilhelms-Universität Münster 3. Juli 2009 Inhaltsverzeichnis 1 Einführung
MehrAlgorithmen mit Python
Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World
MehrCloud-Computing. 1. Definition 2. Was bietet Cloud-Computing. 3. Technische Lösungen. 4. Kritik an der Cloud. 2.1 Industrie 2.
Cloud Computing Frank Hallas und Alexander Butiu Universität Erlangen Nürnberg, Lehrstuhl für Hardware/Software CoDesign Multicorearchitectures and Programming Seminar, Sommersemester 2013 1. Definition
MehrDer Goopax Compiler GPU-Programmierung in C++ ZKI AK-Supercomputing, Münster, 27.03.2014, Ingo Josopait
Der Goopax Compiler GPU-Programmierung in C++ AMD R9 290X: 5.6 TFLOPS (SP MulAdd) Programmierung ~10000 Threads Entwicklungsumgebungen Entwicklungsumgebungen CUDA, OpenCL Compiler: kernel GPU Maschinencode
MehrOrientierungsveranstaltungen 2009 Informatikstudien der Universität Wien
Orientierungsveranstaltungen 2009 Informatikstudien der Universität Wien Scientific Computing 07. Oktober 2009 Siegfried Benkner Wilfried Gansterer Fakultät für Informatik Universität Wien www.cs.univie.ac.at
MehrThreads und OpenMP. Frank Mietke <frank.mietke@informatik.tu-chemnitz.de> Cluster- & Gridcomputing Frank Mietke 7/4/04
Threads und OpenMP Frank Mietke 1 Ziel der Vorlesungen Einführung in Threads Programmierung mit Threads Einführung in OpenMP Programmierung mit OpenMP 2 Was ist
MehrCUDA. Axel Jena, Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Axel Jena, Jürgen Pröll 1
CUDA Axel Jena, Jürgen Pröll Multi-Core Architectures and Programming Axel Jena, Jürgen Pröll 1 Warum Tesla? Traditionelle Graphikkarten Getrennte Prozessoren für Vertex- / Pixelberechnungen - Nachteil:
MehrProgramming Models for Cell BE
Hauptseminar MAP08 Programming Models for Cell BE Hannes Stadler, Sebastian Graf HannesStadler@gmx.de, sebgr@gmx.net Betreuung: Matthias Hartl, Hritam Dutta, Frank Hannig Hardware-Software-Co-Design Universität
Mehr1 Einleitung. 2 Parallelisierbarkeit von. Architektur
Beschleunigung von Aufgaben der parallelen Bildverarbeitung durch Benutzung von NVIDIA-Grafikkarten mit der Compute Unified Device Architecture (CUDA) Roman Glebov roman@glebov.de Abstract Diese Arbeit
MehrDas Prinzip der kleinsten Überraschung Konfiguration des neuen HPC-Clusters am RRZ
Das Prinzip der kleinsten Überraschung Konfiguration des neuen HPC-Clusters am RRZ Hinnerk Stüben ZKI-Arbeitskreis Supercomputing Leibniz-Rechenzentrum, Garching 19. Oktober 2015 Themen Neues HPC-Cluster
MehrEntwicklungstand der GUI
1/13 Entwicklungstand der GUI Dietrich Vogel dvogel@physik.uni-wuppertal.de 7. Juli 2004 2/13 Inhalt 1.Konzept 2.Entwicklungsstand 3.Bestehende Probleme 4.Weitere Entwicklungsstrategie 5.Fragen, Diskussion
MehrParalleles Rechnen. (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich
Paralleles Rechnen (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich Gliederung Motivation Anwendungsgebiete Warum paralleles Rechnen Flynn's Klassifikation Theorie: Parallel
MehrBlockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2015. Tim Conrad
Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2015 Tim Conrad Staff Tim Conrad AG Medical Bioinformatics email: conrad@math.fu-berlin.de Telefon: 838-51445 Büro: Raum 138,
MehrAngebote der Informatik 2 für Ihre Vertiefung à Fach Programmiersysteme. Prof. Dr. Michael Philippsen
Angebote der Informatik 2 für Ihre Vertiefung à Fach Programmiersysteme Prof. Dr. Michael Philippsen Ewiges Dilemma der Programmiersysteme Schwer programmierbar Schwer wartbar fehleranfällig Optimierung
MehrManycores: Hardware und Low-Level Programmierung
Manycores: Hardware und Low-Level Programmierung Florian Sattler Universität Passau 18. Juni 2014 Übersicht Einführung Neue Architekturen Programmierung Supercomputing Fazit 2 / 29 Top 500 3 / 29 Motivation
MehrIntel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte
Intel 80x86 symmetrische Multiprozessorsysteme Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Gliederung I. Parallel Computing Einführung II.SMP Grundlagen III.Speicherzugriff
MehrKommentierung in C. Kommentierung in C. Von Sebastian Rothe 1/26. Kommentierung in C
Von Sebastian Rothe 1/26 Inhaltsverzeichnis 1. Programmierstil eine Übersicht 2. Motivation wozu Kommentierung? 3. Aspekte der Kommentierung 4. GLib als Beispiel 5. Dokumentationssysteme 6. Zusammenfassung
MehrProgrammierung von Many-Cores
Patrizia Peller Betreuer: Armin Größlinger, Prof. Dr. Christian Lengauer 18.04.2013 Programmierung von Many-Cores Seminar: Software Engineering für Exascale Computing Abstract In dieser Arbeit werden Programmiersprachen
MehrEine kurze Geschichte der Grafikkarten
3.1 Einführung Eine kurze Geschichte der Grafikkarten ursprünglich: Graphics Card steuert Monitor an Mitte 80er: Grafikkarten mit 2D-Beschleunigung angelehnt an Arcade- und Home-Computer frühe 90er: erste
MehrLabVIEW Real Time Hands on
LabVIEW Real Time Hands on Dipl. Ing. Sebastian F. Kleinau Dipl. Ing. (FH) Marian Olef Applications Engineering National Instruments Deutschland GmbH Plattform für das grafische Systemdesign Desktop Real-Time
MehrCUDA Nvidia s Parallel Programming Language
CUDA Nvidia s Parallel Programming Language Zusammengetragen und Erstellt von Christian Wirth und Peter Schroeder Im Rahmen der Vorlesung Serious Games Ausarbeitung abgegeben von Christian Wirth Peter
MehrUser Level Device Driver am Beispiel von TCP
September 17, 2004 Einleitung Motivation für Userlevel Device Driver Probleme von Userlevel Device Driver Motivation für Userlevel Device Driver Modularität, leichterer Austausch/Erneuerung von Komponenten.
Mehr4. Parallelprogrammierung
4. Parallelprogrammierung AlDaBi Prak4kum David Weese 2010/11 Enrico Siragusa WS 2011/12 Inhalt Einführung in Parallelität OpenMP Bemerkungen zur P- Aufgabe EINFÜHRUNG IN PARALLELITÄT Folien z.t. aus VL
MehrImpulse C. Seminar Ausgewählte Themen in Hardwareentwurf und Optik. Steffen Liebscher, HWS 2009/2010. Steffen Liebscher
Impulse C Seminar Ausgewählte Themen in Hardwareentwurf und Optik, HWS 2009/2010 Inhalt Was ist Impulse C? Anwendungsgebiete Impulse C in der Praxis Beispiel und Benchmark Ausblick Zusammenfassung 2 Was
MehrInstallationsanleitung pixel-fox
Installationsanleitung pixel-fox Stand 8/2015 V7 (DE) - Änderungen und Irrtümer vorbehalten! Systemvoraussetzungen: Im folgenden finden Sie die allgemeinen Systemvoraussetzungen für den Einsatz von pixel-fox
MehrThema: Hardware-Shader
Seminar Grafikprogrammierung Thema: Hardware-Shader Christian Bauer 03.07.08 Überblick Entwicklung Die Shader im Detail Programmierung GPGPU Zusammenfassung & Ausblick 1/19 Entwicklung (1) Früher: Berechnung
MehrUntersuchung und Vorstellung moderner Grafikchiparchitekturen
Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Untersuchung und Vorstellung moderner Grafikchiparchitekturen Hauptseminar Technische
MehrBibliotheks-basierte Virtualisierung
Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16)
MehrNutzung paralleler Prozesse bei der Umweltsimulation
Nutzung paralleler Prozesse bei der Umweltsimulation RALF Wieland rwieland@zalf.de ZALF/LSA Nutzung paralleler Prozesse bei der Umweltsimulation p. 1 Warum parallele Prozesse? Die Steigerung der Taktfrequenz
MehrIm Kapitel Resourc Manager werden die verschiedenen Möglichkeiten der Überwachung von Messwerten eines Server oder Benutzers erläutert.
4 Resource Manager Erfassung von Messwerten und deren Auswertung. 4.1 Übersicht Themen des Kapitels Resource Manager Themen des Kapitels Einsatz des Resource Managers Installation des Resource Managers
MehrBeispiel Parallelisierung 2D Laplace. Lagrange Formulierung/Hyperelastisches Material. Finite Differenzen Diskretisierung
Simulation von physikalischen Feldern im menschlichen Körper Implementierung Gliederung Gliederung Wiederholung: Biomechanik III Statische elastomechanische Probleme Finite Elemente Diskretisierung Finite
MehrVirtualisierung im Echtzeitbereich. Andreas Hollmann FH Landshut EADS Military Air Systems
Virtualisierung im Echtzeitbereich Andreas Hollmann FH Landshut EADS Military Air Systems 2 Überblick Hintergrund und Motivation Vorstellung von Lösungsansätzen Auswahl und Evaluierung Einschränkungen
MehrC C. Hochleistungsrechnen (HPC) auf dem Windows Compute Cluster des RZ der RWTH Aachen. 1 WinHPC 2006 - Einführung Center. 31.
Hochleistungsrechnen (HP) auf dem Windows ompute luster des RZ der RWTH Aachen 31. Mai 2006 hristian Terboven Dieter an Mey {terboven anmey}@rz.rwth-aachen.de 1 WinHP 2006 - Einführung enter SunFire V40z
MehrComputational Biology: Bioelektromagnetismus und Biomechanik
Computational Biology: Bioelektromagnetismus und Biomechanik Implementierung Gliederung Wiederholung: Biomechanik III Statische Elastomechanik Finite Elemente Diskretisierung Finite Differenzen Diskretisierung
MehrProgrammierung von Multicore-Rechnern
Programmierung von Multicore-Rechnern Prof. Dr.-Ing. habil. Peter Sobe HTW Dresden, Fakultät Informatik/Mathematik www.informatik.htw-dresden.de Gliederung: Ein Blick auf Multicore-Prozessoren/ und -Rechner
MehrGPU-BESCHLEUNIGTE PACKUNGSOPTIMIERUNG. André Müller, Johannes J. Schneider, Elmar Schömer
GPU-BESCHLEUNIGTE PACKUNGSOPTIMIERUNG André Müller, Johannes J. Schneider, Elmar Schömer BETRACHTETES PACKPROBLEM gegeben N = 5, 6,,50 harte Kugeln in Dimension d mit ganzzahligen Radien r i = 1,2,,N gesucht
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 ZPL Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Agenda 1. ZPL Überblick 2. Konzepte von ZPL Regionen, Region Specifiers
MehrSimplivity Rechenzentrum in a Box
09-10.09 2 Tag Simplivity Rechenzentrum in a Box Markus Schmidt Consultant markus.schmidt@interface-systems.de Agenda 1.Motivation Warum ein neuer Ansatz 2.Technischer Überblick 3.Anwendungsszenarien 4.Performancebetrachtung
MehrBusse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009
Busse Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 Busse 1/40 2008-10-13 Übersicht 1 Einleitung 2 Bus-Konfiguration
MehrParallele Programmierung mit OpenMP
Parallele Programmierung mit OpenMP Wolfgang Dautermann FH Joanneum Chemnitzer Linuxtage 2008 1 Motivation 2 OpenMP Übersicht 3 Hello World - der erste Code 4 OpenMP-Compilerdirektiven Threaderzeugung
MehrCurrent and Emerging Architectures Multi-core Architectures and Programming
Current and Emerging Architectures Multi-core Architectures and Programming Adel El-Rayyes Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg 9. Mai 2012 Inhalt Überblick über
Mehrtechnische universität dortmund Lehrstuhl für Hochfrequenztechnik Übertragungssysteme
Lehrstuhl für Hochfrequenztechnik GPU-beschleunigte numerische Simulation faseroptischer Übertragungssysteme, Marius Helf, Peter Krummrich Übersicht Motivation Split-Step p Fourier Methode Ansätze für
MehrDie IBM Netezza Architektur für fortgeschrittene Analysen
Michael Sebald IT Architect Netezza Die IBM Netezza Architektur für fortgeschrittene Analysen 2011 IBM Corporation Was ist das Problem aller Data Warehouse Lösungen? I / O Transaktionaler und analytischer
Mehr0. Einführung. C und C++ (CPP)
C und C++ (CPP) 0. Einführung Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte Wissenschaften marc.rennhard@zhaw.ch Marc Rennhard, 05.01.2010,
MehrGrundlagen der Rechnerarchitektur
Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie
MehrAssembler - Einleitung
Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache
MehrCONCURRENCY MODELS. Auf der Suche nach dem heiligen Gral der ManyCores Peter Sturm. (c) Peter Sturm, Universität Trier
CONCURRENCY MODELS Auf der Suche nach dem heiligen Gral der ManyCores Peter Sturm 1 AUTOVERKEHR 61.5 Millionen zugelassene Autos (Anfang 2014) Quelle: Statistisches Bundesamt 2 3 SPERRGRANULAT Die Zeit
MehrOpenMP am Beispiel der Matrizenmultiplikation
OpenMP am Beispiel der Matrizenmultiplikation David J. Meder, Dr. Victor Pankratius IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe
MehrDIPLOMARBEIT. Entwurf und Implementierung eines modularen USB-Stacks für eingebettete Controller ohne Betriebssystem. Uwe Pfeiffer
Fakultät Informatik Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur DIPLOMARBEIT Entwurf und Implementierung eines modularen USB-Stacks für eingebettete
MehrSpezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe
Grafikprozessoren Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe 2D: Berechnung der Bildes aus einfachen Grafikprimitiven 3D: Bildaufbau aus räumlicher Beschreibung
MehrEffizientes Memory Debugging in C/C++
Effizientes Memory Debugging in C/C++ Adam Szalkowski Embedded Computing Conference 2014 Ursachen/ Symptome Debugging Tools Ursachen / Symptome Was habe ich falsch gemacht? Was kann denn passieren im schlimmsten
Mehr