Multi- und Many-Core
|
|
|
- Jens Berthold Messner
- vor 8 Jahren
- Abrufe
Transkript
1 Multi- und Many-Core Benjamin Warnke Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Benjamin Warnke Multi- und Many-Core 1 / 34
2 Gliederung (Agenda) 1 Einleitung 2 Thread Parallelisierung TBB OpenMP 3 Prozess Parallelisierung MPI 4 Kombination Threads und Prozesse 5 Zusammenfassung 6 Literatur Benjamin Warnke Multi- und Many-Core 2 / 34
3 Gliederung (Agenda) 1 Einleitung 2 Thread Parallelisierung TBB OpenMP 3 Prozess Parallelisierung MPI 4 Kombination Threads und Prozesse 5 Zusammenfassung 6 Literatur Benjamin Warnke Multi- und Many-Core 3 / 34
4 Herausforderungen im Verlauf der Zeit verändert nach [1] Benjamin Warnke Multi- und Many-Core 4 / 34
5 Warum Multi- und Manycore Ziel: Mehr Rechenleistung (Flops/sec) erster Ansatz: höherer Takt! höhere Spannung! mehr Hitze! unmöglich zu kühlen neuer Ansatz: langsamer Takt dafür mehr gleichzeitig! kleinere Spannung! Energieeffizienz Benjamin Warnke Multi- und Many-Core 5 / 34
6 Probleme von Mehrkernsystemen Speicherbandbreite erschwertes Debuggen Algorithmus muss parallelisierbar sein! nicht jede Parallelisierung ist schneller Nichtdeterminismus Overhead durch Parallelisierung Synchronisierung! Sperr-Verfahren! deadlocks Benjamin Warnke Multi- und Many-Core 6 / 34
7 Multi- und Manycore Systemprozessor (2 POSIX-Threads OpenMP TBB MPI OpenACC 16 Kerne)! Multicore GPU (> 1000 Kerne)! Manycore CUDA OpenCL OpenGL (für Grafikberechnungen) OpenACC Xeon Phi ( 70 Kerne)! Manycore Mischform Benjamin Warnke Multi- und Many-Core 7 / 34
8 Xeon Phi - Mischform Quelle: [5] Benjamin Warnke Multi- und Many-Core 8 / 34
9 Xeon Phi (Co-)Prozessor PCI-Express/Sockel 70 Kerne 280 Threads langsamer Takt Hardware optimiert für parallelen Code besonders gut geeignet für Vektoroperationen (nur PCI-Express) verschiedene Modi Rechenlast aufteilen mit Systemprozessor Eigenenständiger Rechnerknoten Wie GPU nur verwendet bei Bedarf durch CPU unterstützt MPI Benjamin Warnke Multi- und Many-Core 9 / 34
10 Thread vs Prozess Gemeinsam Unabhängige parallele Code-Ausführung vom Betriebssystem verwaltet Prozess eigener Adressraum im Speicher Kommunikation durch Nachrichten/ Dateien/ Shared Memory Segmente im Fehlerfall kein unmittelbarer Einfluss auf andere Prozesse Thread gemeinsamer Speicher innerhalb eines Prozesses wenn 1 Thread abstürzt, dann auch der gesamte Prozess Benjamin Warnke Multi- und Many-Core 10 / 34
11 Gliederung (Agenda) 1 Einleitung 2 Thread Parallelisierung TBB OpenMP 3 Prozess Parallelisierung MPI 4 Kombination Threads und Prozesse 5 Zusammenfassung 6 Literatur Benjamin Warnke Multi- und Many-Core 11 / 34
12 Thread Parallelisierung Vorteile kein Kopieren der Daten notwendig bessere Zugriffszeit Compiler können bei Datenaufteilung helfen Compilergestützter Lastausgleich möglich Nachteile gemeinsame Speicherbandbreite Benjamin Warnke Multi- und Many-Core 12 / 34
13 TBB Thread Building Blocks C++ template library Stärken Parallele Datentypen z.b. "vector", "queue", "map" nicht balancierte Schleifen work stealing starke Compiler Optimierung zur Laufzeit anpassbar gute Code Lesbarkeit durch Templates Open Source Schwächen nur C++ läuft auf diesem Cluster langsam Benjamin Warnke Multi- und Many-Core 13 / 34
14 TBB Schleifen Parallelisierung 1 #include "tbb/tbb.h" 2 void SerialLoop(float a[]) { 3 for(int i = 0; i < a.length; i++){ 4 DoSomething(i,a[i]); 5 } 6 } 7 void ParallelLoop(float a[]) { 8 tbb::parallel_for(0, a.length, [&](int i) { 9 DoSomething(i,a[i]); 10 }); 11 } Listing 1: Schleifen Parallelisierung Benjamin Warnke Multi- und Many-Core 14 / 34
15 TBB Queue Parallelisierung 1 #include "tbb/tbb.h" 2 std::queue<t> MySerialQueue; 3 tbb::concurrent_queue<t> MyParallelQueue; 4 T item; 5 void SerialPop(){ 6 if(!myserialqueue.empty() ) { 7 item = MySerialQueue.front(); 8 MySerialQueue.pop_front(); 9 DoSomething(item); 10 } 11 } 12 void ParallelPop(){ 13 if(myparallelqueue.try_pop(item) ) { 14 DoSomething(item); 15 } 16 } Listing 2: Queue Parallelisierung Benjamin Warnke Multi- und Many-Core 15 / 34
16 OpenMP OpenMP Stärken Parallelisierung durch Compiler Anweisungen iterative Parallelisierung möglich Vektorisierung wird nicht beeinflusst Schwächen keine parallelen Datenstrukturen enthalten nicht alle Compiler unterstützen OpenMP erhöhte Fehlergefahr durch Variablen, die private sein sollten Benjamin Warnke Multi- und Many-Core 16 / 34
17 OpenMP Schleifen Parallelisierung 1 void SerialLoop(float a[]) { 2 for(int i = 0; i < a.length; i++){ 3 DoSomething(i,a[i]); 4 } 5 } 6 void ParallelLoop(float a[]) { 7 #pragma omp parallel for 8 for(int i = 0; i < a.length; i++){ 9 DoSomething(i,a[i]); 10 } 11 } Listing 3: Schleifen Parallelisierung Benjamin Warnke Multi- und Many-Core 17 / 34
18 partdiff-xxx.exe $i Speedup f(x)=x Sequentiel OMP TBB (TBB) Threads Benjamin Warnke Multi- und Many-Core 18 / 34
19 Gliederung (Agenda) 1 Einleitung 2 Thread Parallelisierung TBB OpenMP 3 Prozess Parallelisierung MPI 4 Kombination Threads und Prozesse 5 Zusammenfassung 6 Literatur Benjamin Warnke Multi- und Many-Core 19 / 34
20 Prozess Parallelisierung Vorteile beliebig viele Prozesse größere Speicherbandbreite größerer (Haupt-) Speicher Nachteile Kopieren von Datenteilen notwendig Compiler können bei Optimierung kaum helfen Lastausgleich muss explizit codiert werden nur wenige und teure Debugger sehr aufwendiges Debuggen Benjamin Warnke Multi- und Many-Core 20 / 34
21 MPI Message Passing Interface Bibliothek für Nachrichtenaustausch Stärken beliebig viele Prozesse verteilte Systeme (Cluster) Implementierungen für C, C++, Fortran, Java, Python, Schwächen expliziter Code notwendig explizite Datenaufteilung benötigt wrapper Compiler Benjamin Warnke Multi- und Many-Core 21 / 34
22 MPI Hello World 1 #include <mpi.h> 2 int world_size;// Anzahl der Prozesse 3 int world_rank;// Nummer dieses Prozesses 4 int main(int argc, char** argv) { 5 MPI_Init(&argc,&argv); 6 MPI_Comm_size(MPI_COMM_WORLD, &world_size); 7 MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); 8 dosomething(); 9 MPI_Finalize(); 10 } Listing 4: Hello World Benjamin Warnke Multi- und Many-Core 22 / 34
23 MPI Hello World 1 #include <stdio.h> 2 #include <mpi.h> 3 void dosomething() { 4 printf("hello World from Rank %d \n", world_rank); 5 int number; 6 if (world_rank == 0) { 7 number = rand(); 8 MPI_Send(&number, 1, MPI_INT, 1, 0,,! MPI_COMM_WORLD); 9 } else { 10 MPI_Recv(&number, 1, MPI_INT, 0, 0,,! MPI_COMM_WORLD, MPI_STATUS_IGNORE); 11 printf("received %d \n", number); 12 } 13 } Listing 5: Hello World Benjamin Warnke Multi- und Many-Core 23 / 34
24 partdiff-xxx.exe $i Speedup Threads/Prozesse f(x)=x Sequentiel OMP TBB (TBB) MPI MPI Benjamin Warnke Multi- und Many-Core 24 / 34
25 Gliederung (Agenda) 1 Einleitung 2 Thread Parallelisierung TBB OpenMP 3 Prozess Parallelisierung MPI 4 Kombination Threads und Prozesse 5 Zusammenfassung 6 Literatur Benjamin Warnke Multi- und Many-Core 25 / 34
26 Kombination Threads und Prozesse Vorteile gemeinsamer Cache für Threads größere Speicherbandbreite durch mehrere Rechenknoten Nachteile Kopieren von Daten über das Netzwerk nötig Lastausgleich muss explizit codiert werden Fehlerquellen von Threads + Prozessen sehr aufwendiges Debuggen Benjamin Warnke Multi- und Many-Core 26 / 34
27 partdiff-xxx.exe $i Speedup Threads Prozesse f(x)=x Sequentiel OMP TBB (TBB) MPI MPI MPI+OMP MPI+TBB (MPI+TBB) Benjamin Warnke Multi- und Many-Core 27 / 34
28 Gliederung (Agenda) 1 Einleitung 2 Thread Parallelisierung TBB OpenMP 3 Prozess Parallelisierung MPI 4 Kombination Threads und Prozesse 5 Zusammenfassung 6 Literatur Benjamin Warnke Multi- und Many-Core 28 / 34
29 Zusammenfassung Probleme von Multicore-Architekturen Xeon Phi (Co-)Prozessor TBB und OpenMP MPI zur Kommunikation zwischen verschiedenen Rechenknoten verschiedene Varianten der Parallelisierung sind kombinierbar Benjamin Warnke Multi- und Many-Core 29 / 34
30 Gliederung (Agenda) 1 Einleitung 2 Thread Parallelisierung TBB OpenMP 3 Prozess Parallelisierung MPI 4 Kombination Threads und Prozesse 5 Zusammenfassung 6 Literatur Benjamin Warnke Multi- und Many-Core 30 / 34
31 Literatur I [1] Adapteva turns to Kickstarter to fund massively parallel processor. [Online]. Available: adapteva-turns-to-kickstarter-to-fund-massively-parallel-p [2] Die Evolution von Multi-Core- zu Many-Core-Prozessoren. [Online]. Available: ftp://ftp.ni.com/pub/branches/germany/ 2015/artikel/06-juni/04_Der_Kern_der_Materie_Tom_ Bradicich_Invision_3_2015.pdf [3] Manycore processor. [Online]. Available: Benjamin Warnke Multi- und Many-Core 31 / 34
32 Literatur II [4] What is the difference between many core and multi core? [Online]. Available: what-is-the-difference-between-many-core-and-multi-core [5] The Future of Larrabee: The Many Core Era. [Online]. Available: [6] Ask James Reinders: Multicore vs. Manycore. [Online]. Available: ask-james-reinders-multicore-vs-manycore/ [7] Xeon Phi. [Online]. Available: www/de/de/processors/xeon/xeon-phi-detail.html Benjamin Warnke Multi- und Many-Core 32 / 34
33 Literatur III [8] Intel R Threading Building Blocks, OpenMP, or native threads? [Online]. Available: intel-threading-building-blocks-openmp-or-native-threads [9] Intel R Threading Building Blocks (Intel R TBB) Developer Guide. [Online]. Available: [10] Generic Parallel Algorithms. [Online]. Available: tutorial-intel-tbb-generic-parallel-algorithms Benjamin Warnke Multi- und Many-Core 33 / 34
34 Literatur IV [11] Concurrent Containers. [Online]. Available: tutorial-intel-tbb-concurrent-containers [12] Message Passing Interface. [Online]. Available: [13] MPI Hello World. [Online]. Available: Benjamin Warnke Multi- und Many-Core 34 / 34
Einige 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
Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
Trend der letzten Jahre in der Parallelrechentechnik
4.1 Einführung Trend der letzten 10-15 Jahre in der Parallelrechentechnik weg von den spezialisierten Superrechner-Plattformen hin zu kostengünstigeren Allzwecksystemen, die aus lose gekoppelten einzelnen
Multi-threaded Programming with Cilk
Multi-threaded Programming with Cilk Hobli Taffame Institut für Informatik Ruprecht-Karls Universität Heidelberg 3. Juli 2013 1 / 27 Inhaltsverzeichnis 1 Einleitung Warum Multithreading? Ziele 2 Was ist
Konzepte der parallelen Programmierung
Fakultät Informatik, Institut für Technische Informatik, Professur Rechnerarchitektur Konzepte der parallelen Programmierung Parallele Programmiermodelle Nöthnitzer Straße 46 Raum 1029 Tel. +49 351-463
Projektseminar 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
Praktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Nathanael Hübbe [email protected] MPI Einführung I: Hardware Voraussetzung zur Parallelen Programmierung
Projektseminar Parallele Programmierung
HTW Dresden WS 2017/2018 Organisatorisches Praktikum, 4 SWS Do. 15:10-18:30 Uhr, Z136c, 2 Doppelstunden Labor Z 136c ist Donnerstag 15:10-18:30 reserviert, gemeinsam mit anderen Projektseminaren Selbständige
Evaluation. Einleitung. Implementierung Integration. Zusammenfassung Ausblick
Christopher Schleiden Bachelor Kolloquium 15.09.2009 Einleitung Evaluation Implementierung Integration Zusammenfassung Ausblick Einleitung laperf Lineare Algebra Bibliothek für C++ Möglichkeit zur Integration
Seminarvortrag: Direktivenbasierte Programmierung von Beschleunigern mit OpenMP 4.5 und OpenACC 2.5 im Vergleich
Seminarvortrag: Direktivenbasierte Programmierung von Beschleunigern mit Direktivenbasierte Programmierung von Beschleunigern mit Agenda Einführung / Motivation Überblick zu OpenMP und OpenACC Asynchronität
OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer
OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell
4.4. MPI Message Passing Interface
4.4. MPI Message Passing Interface Ferienakademie 2009 Franz Diebold Agenda 1. Einführung, Motivation 2. Kommunikationsmodell 3. Punkt-Zu-Punkt-Kommunikation 4. Globale Kommunikation 5. Vergleich MPI und
Entwicklung algorithmischer Skelette für CUDA am Beispiel von Affintiy Propagation
Entwicklung algorithmischer Skelette für CUDA am Beispiel von Affintiy Propagation Christoph Winter Fakultät für Informatik und Mathematik Ostbayerische Technische Hochschule Regensburg 93049 Regensburg
Cell and Larrabee Microarchitecture
Cell and Larrabee Microarchitecture Benjamin Grund Dominik Wolfert Universität Erlangen-Nürnberg 1 Übersicht Einleitung Herkömmliche Prozessorarchitekturen Motivation für Entwicklung neuer Architekturen
Seminar 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
High Performance Computing
REGIONALES RECHENZENTRUM ERLANGEN [RRZE] High Performance Computing Systemausbildung Grundlagen und Aspekte von Betriebssystemen und systemnahen Diensten, 21.06.2017 HPC-Gruppe, RRZE Agenda Was bedeutet
Eine kurze Einführung in Rechnerarchitektur und Programmierung von Hochleistungsrechnern als zentrales Werkzeug in der Simulation
Eine kurze Einführung in Rechnerarchitektur und Programmierung von Hochleistungsrechnern als zentrales Werkzeug in der Simulation Dr. Jan Eitzinger Regionales Rechenzentrum (RRZE) der Universität Erlangen-Nürnberg
Der 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
Parallele und verteilte Programmierung
Thomas Rauber Gudula Rünger Parallele und verteilte Programmierung Mit 165 Abbildungen und 17 Tabellen Jp Springer Inhaltsverzeichnis 1. Einleitung 1 Teil I. Architektur 2. Architektur von Parallelrechnern
Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading
Leistungskurs C++ Multithreading Threading mit Qt Plattformübergreifende Thread-Klasse Sehr einfach zu benutzen Leider etwas schlecht dokumentiert Leistungskurs C++ 2 QThread Plattformübergreifende Thread-Klasse
High Performance Computing
REGIONALES RECHENZENTRUM ERLANGEN [ RRZE ] High Performance Computing Systemausbildung Grundlagen und Aspekte von Betriebssystemen und System-nahen Diensten Michael Meier, RRZE, 01.07.2015 Agenda Was bedeutet
Einleitung Grundlagen Erweiterte Grundlagen Zusammenfassung Literatur. C: Funktionen. Philip Gawehn
C: Funktionen Philip Gawehn Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Do., 22.05.2014 1 / 23 Gliederung
Compute Unified Device Architecture CUDA
Compute Unified Device Architecture 06. Februar 2012 1 / 13 Gliederung 2 / 13 : Compute Unified Device Architecture entwickelt von Nvidia Corporation spezifiziert Software- und Hardwareeigenschaften Ziel:
Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff
Parallel Computing Einsatzmöglichkeiten und Grenzen Prof. Dr. Nikolaus Wulff Vorüberlegungen Wann ist paralleles Rechnen sinnvoll? Wenn die Performance/Geschwindigkeit steigt. Wenn sich größere Probleme
Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff
Parallel Computing Einsatzmöglichkeiten und Grenzen Prof. Dr. Nikolaus Wulff Parallel Architekturen Flynn'sche Klassifizierung: SISD: single Instruction, single Data Klassisches von-neumann sequentielles
Motivation (GP)GPU CUDA Zusammenfassung. CUDA und Python. Christian Wilms. Integriertes Seminar Projekt Bildverarbeitung
CUDA und Python Christian Wilms Integriertes Seminar Projekt Bildverarbeitung Universität Hamburg WiSe 2013/14 12. Dezember 2013 Christian CUDA und Python 1 Gliederung 1 Motivation 2 (GP)GPU 3 CUDA 4 Zusammenfassung
Klausur zu High Performance Computing 09. Juli 2011, SS 2011
Alexander Vondrous, Britta Nestler, Fakultät IWI, Hochschule Karlsruhe Klausur zu High Performance Computing 09. Juli 2011, SS 2011 Es sind keine Hilfsmittel zugelassen. Bearbeitungszeit: 90 Minuten Aufgabe
Message Passing Interface: MPI
Message Passing Interface: MPI Geschichte: Erster MPI Standard Etwa 60 Personen, von 40 Institutionen (29-30 April 1992) MPI 1 im November 1993 MPI 1.1 im Juni 1995 MPI 1.2 Juli 1997 (Nur Ergänzung zu
OpenMP. 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
Hochleistungsrechnen in Darmstadt: Der Lichtenberg- Hochleistungsrechner. Dr. Andreas Wolf. Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum
Hochleistungsrechnen in Darmstadt: Der Lichtenberg- Hochleistungsrechner Dr. Andreas Wolf Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum Überblick Randbedingungen der HPC Beschaffung an der
Projektseminar Parallele Programmierung
HTW Dresden WS 2016/2017 Organisatorisches Praktikum, 4 SWS Do. 15:10-18:30 Uhr, Z136c, 2 Doppelstunden Labor Z 136c ist Montag und Donnerstag 15:10-18:30 reserviert, gemeinsam mit anderen Projektseminaren
Modelle der Parallelverarbeitung
Modelle der Parallelverarbeitung Modelle der Parallelverarbeitung 12. Message Passing Interface Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Sommersemester 2017 1 / 36 Überblick
4. 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
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.
2 Rechnerarchitekturen
2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf
Parallel Programming: Message-Passing-Interface
Vorlesung Rechnerarchitektur 2 Seite 71 MPI-Einführung Parallel Programming: Voraussetzungen im Source-Code für ein MPI Programm: mpi.h includen Die Kommandozeilenparameter des Programms müssen an MPI_Init
MSDN Webcast: Parallelprogrammierung mit der Task Parallel Library für.net (Teil 1) Presenter: Bernd Marquardt
MSDN Webcast: Parallelprogrammierung mit der Task Parallel Library für.net (Teil 1) Presenter: Bernd Marquardt [email protected] www.go-sky.de Die Serie: 5 Teile Teil 1: Einführung, Amdahl s Gesetz, Data
Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg
GPU-Versuch [email protected] Friedrich-Alexander-Universität Erlangen-Nürnberg Praktikum Parallele Rechnerarchitekturen SS2014 Outline 1 Einführung 2 Outlook 1 Einführung 2 Eine kurze Geschichte
Hochleistungsrechnen 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
GPU-Programmierung: OpenCL
Seminar: Multicore Programmierung Sommerstemester 2009 04.06.2009 Inhaltsverzeichnis 1 GPU-Programmierung von Grafikkarten von GPU-Computing 2 Architektur Spracheigenschaften Vergleich mit CUDA Beispiel
GPUs. Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg
GPUs Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Vorgelegt von: Johannes Coym E-Mail-Adresse: [email protected]
Shared-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:
General Purpose Computation on GPUs
General Purpose Computation on GPUs Matthias Schneider, Robert Grimm Universität Erlangen-Nürnberg {matthias.schneider, robert.grimm}@informatik.stud.uni-erlangen.de M. Schneider, R. Grimm 1 Übersicht
CUDA. 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
High-Performance Computing mit FEMAG
High-Performance Computing mit FEMAG Untersuchungen und Massnahmen zur Verbesserung der Rechenzeit FEMAG Anwendertreffen 2013 (Zürich) Ronald Tanner SEMAFOR Informatik & Energie AG, Basel 10./11. Oktober
Memory Models Frederik Zipp
Memory Models Frederik Zipp Seminar: Programmiersprachen für Parallele Programmierung (SS 2010) Fakultät für Informatik - IPD SNELTING LEHRSTUHL PROGRAMMIERPARADIGMEN 1
Programmierung 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
2. Der ParaNut-Prozessor "Parallel and more than just another CPU core"
2. Der ParaNut-Prozessor "Parallel and more than just another CPU core" Neuer, konfigurierbarer Prozessor Parallelität auf Daten- (SIMD) und Thread-Ebene Hohe Skalierbarkeit mit einer Architektur neues
Parallel Processing in a Nutshell OpenMP & MPI kurz vorgestellt
Parallel Processing in a Nutshell & kurz vorgestellt 16. Juni 2009 1 / 29 1 Das Problem 2 2 / 29 1 Das Problem 2 3 2 / 29 1 Das Problem 2 3 4 2 / 29 1 Das Problem 2 3 4 2 / 29 Multi-Core Prozessoren halten
Implementierung zweier Algorithmen mittels OpenCL auf Grafikkarten
Implementierung zweier Algorithmen mittels OpenCL auf Grafikkarten Tobias Schwarzer, Michael Theil Hardware-Software-Co-Design Universität Erlangen-Nürnberg [email protected],
CPU-Caches. Christian Duße. Seminar Effiziente Programmierung in C
CPU-Caches Christian Duße Seminar Effiziente Programmierung in C Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MPI: Message passing interface
MPI: Message passing interface Es werden mehrere Prozesse gestartet, die das gleiche Programm abarbeiten. Diese Prozesse können auf dem gleichen Knoten oder verschiedenen Knoten eines Clusters von Rechnern
OpenCL Implementierung von OpenCV Funktionen
Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen [email protected] Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL
CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg
CUDA Seminar Multi-Core Architectures and Programming 1 Übersicht Einleitung Architektur Programmierung 2 Einleitung Computations on GPU 2003 Probleme Hohe Kenntnisse der Grafikprogrammierung nötig Unterschiedliche
Parallele 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
Mehrprozessorarchitekturen
Mehrprozessorarchitekturen (SMP, UMA/NUMA, Cluster) Arian Bär 12.07.2004 12.07.2004 Arian Bär 1 Gliederung 1. Einleitung 2. Symmetrische Multiprozessoren (SMP) Allgemeines Architektur 3. Speicherarchitekturen
Raytracing in GA mittels OpenACC. Michael Burger, M.Sc. FG Scientific Computing TU Darmstadt
Raytracing in GA mittels OpenACC Michael Burger, M.Sc. FG Scientific Computing TU Darmstadt [email protected] 05.11.12 FB Computer Science Scientific Computing Michael Burger 1 / 33 Agenda
Klausur zu High Performance Computing 7. Februar 2014
Britta Nestler, Alexander Vondrous, Johannes Hötzer, Marcus Jainta Fakultät IWI, Hochschule Karlsruhe Klausur zu High Performance Computing 7. Februar 2014 Es sind keine Hilfsmittel zugelassen. Bearbeitungszeit:
Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software
Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme
Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online
Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches
Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
Visualisierung paralleler bzw. verteilter Programme
Seminar Visualisierung in Informatik und Naturwissenschaften im SS 1999 Visualisierung paralleler bzw. verteilter Programme Holger Dewes Gliederung Zum Begriff Motivation PARADE Beispiel 1: Thread basierte
Paralleles Programmieren mit MPI und OpenMP
Paralleles Programmieren mit MPI und OpenMP Vorlesung «Algorithmen für das wissenschaftliche Rechnen» 6.5.2002 Olaf Schenk, Michael Hagemann 6.5.2002 Algorithmen des wissenschaftlichen Rechnens 1 Organisatorisches
Intel Cluster Studio. Michael Burger FG Scientific Computing TU Darmstadt [email protected]
Intel Cluster Studio Michael Burger FG Scientific Computing TU Darmstadt [email protected] 19.03.13 FB Computer Science Scientific Computing Michael Burger 1 / 30 Agenda Was ist das Intel
Gliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo
Gliederung Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo Was ist CUDA? Nvidia CUDA ist eine von NvidiaGPGPU-Technologie, die es Programmierern erlaubt, Programmteile
Introduction 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
OpenMP - 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
Einführung in das parallele Programmieren mit MPI und Java
Einführung in das parallele Programmieren mit und Java Seite 1 Übersicht Parallele Prozesse und Erste Schritte mit Kollektive Kommunikation Weitere Möglichkeiten Seite 2 Literatur (1) Homepage des 2-Forums
(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT
Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in
